Commit 46315e2b authored by sboppud's avatar sboppud

[Sai Boppudi] Component test fopr Offer Transaction Service Module

parent 65c11c38
package com.nisum.offertransactionservice.controller;
import com.nisum.offertransactionservice.client.ClientService;
import com.nisum.offertransactionservice.dao.EndOfSaleRepo;
import com.nisum.offertransactionservice.dao.OfferLookupRepo;
import com.nisum.offertransactionservice.dao.OfferMetaDataRepo;
import com.nisum.offertransactionservice.dto.*;
import com.nisum.offertransactionservice.model.EndOfSaleEntity;
import com.nisum.offertransactionservice.model.OfferLookup;
import com.nisum.offertransactionservice.service.OfferCallingPEService;
import org.junit.Assert;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.*;
import com.nisum.offertransactionservice.model.OfferMeta;
import org.junit.jupiter.api.Test;
import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.context.annotation.Description;
import reactor.core.publisher.Mono;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import java.util.stream.Collectors;
import java.util.Optional;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.when;
@RunWith(SpringRunner.class)
@SpringBootTest
public class OfferControllerComponentTest {
@InjectMocks
private OfferTransactionController offerTransactionController = new OfferTransactionController();
class OfferTransactionControllerTest {
@InjectMocks
private OfferCallingPEService offerCallingPEService = new OfferCallingPEService();
@Autowired
private OfferTransactionController offerTransactionController;
@Mock
private OfferLookupRepo offerLookupRepo;
@Mock
private OfferMetaDataRepo offerMetaDataRepo;
@Mock
private EndOfSaleRepo endOfSaleRepo;
@Mock
private ClientService clientService;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
private String HH_ID_FOR_END_OF_SALE = "id01";
private String TRANSACTION_ID_FOR_END_OF_SALE = "tx01";
private String UU_ID_FOR_END_OF_TRANSACTION = "id01";
@Description("Component test for getOfferTransactionResponse method")
@Test
public void test() throws InterruptedException {
when(offerLookupRepo.findAll()).thenReturn(returnOffers());
when(clientService.getPeResponseFlux(ArgumentMatchers.any())).thenReturn(getPeResponse());
void getOfferTransactionResponse() throws InterruptedException {
when(offerLookupRepo.findAll()).thenReturn(getOffers());
when(clientService.getPeResponseFlux(Mockito.any(PERequest.class))).thenReturn(getPeResponse());
when(offerMetaDataRepo.findByOfferIdAndOfferStatus(Mockito.anyLong(), Mockito.anyString())).thenReturn(Optional.of(new OfferMeta()));
OfferTransactionResponse offerTransactionResponse = offerTransactionController.getOfferTransactionResponse(getOfferTransactionRequest());
Assert.assertEquals(Objects.nonNull(offerTransactionResponse.getTransactionId()),true);
assertEquals(Objects.nonNull(offerTransactionResponse.getTransactionId()),true);
}
private PERequest getPEReq() {
PERequest peRequest = new PERequest();
peRequest.setHhId("123");
List<Item> itemList = new ArrayList<>();
Item item1 = new Item("Coke", "12", 6.05);
Item item2 = new Item("Thumpsup", "11", 12.32);
itemList.add(item1);
itemList.add(item2);
peRequest.setItemList(itemList);
return peRequest;
@Description("Component test for endOfSale method")
@Test
void endOfSale() throws IOException {
doNothing().when(endOfSaleRepo.save(Mockito.any(EndOfSaleEntity.class)));
assertEquals(Objects.nonNull(offerTransactionController.endOfSale(buildEndOfSaleReq())),true);
}
private PEResponse getPeResponse() {
PEResponse peResponse = new PEResponse();
peResponse.setHhid("123");
List<Item> itemList = new ArrayList<>();
Item item1 = new Item("Coke", "12", 6.05);
Item item2 = new Item("Thumpsup", "11", 12.32);
itemList.add(item1);
itemList.add(item2);
peResponse.setDiscountedItemList(itemList);
return peResponse;
@Description("Component test for endOfTransaction method")
@Test
void endOfTransaction() {
when(clientService.getStringMono(Mockito.anyString())).thenReturn(getMonoOfString());
assertEquals(Objects.nonNull(offerTransactionController.endOfTransaction(UU_ID_FOR_END_OF_TRANSACTION)),true);
}
public List<OfferLookup> returnOffers() {
private List<OfferLookup> getOffers() {
OfferLookup offerLookup1 = new OfferLookup(1L, "12", 234L, "02", "AND", "BOGO");
OfferLookup offerLookup2 = new OfferLookup(2l, "13", 234L, "02", "OR", "BXGY");
List<OfferLookup> offerLookups = new ArrayList<>();
offerLookups.add(offerLookup1);
offerLookups.add(offerLookup2);
return offerLookups.stream().collect(Collectors.toList());
return offerLookups;
}
private OfferTransactionRequest getOfferTransactionRequest() {
OfferTransactionRequest offerTransactionRequest = new OfferTransactionRequest();
offerTransactionRequest.setHhId("123");
offerTransactionRequest.setItemList(getItemList());
return offerTransactionRequest;
}
private PEResponse getPeResponse() {
PEResponse peResponse = new PEResponse();
peResponse.setHhid("123");
peResponse.setDiscountedItemList(getItemList());
return peResponse;
}
private EndOfSaleReq buildEndOfSaleReq() {
OfferTransactionResponse offerTransactionResponse = new OfferTransactionResponse(HH_ID_FOR_END_OF_SALE, TRANSACTION_ID_FOR_END_OF_SALE, getItemList());
EndOfSaleReq endOfSaleReq = new EndOfSaleReq(offerTransactionResponse, getOffers());
return endOfSaleReq;
}
private List<Item> getItemList() {
List<Item> itemList = new ArrayList<>();
Item item1 = new Item("Coke", "12", 13.05);
Item item2 = new Item("Thumpsup", "11", 14.05);
itemList.add(item1);
itemList.add(item2);
offerTransactionRequest.setItemList(itemList);
return offerTransactionRequest;
return itemList;
}
}
private Mono<String> getMonoOfString() {
return Mono.just("MONO_TO_STRING");
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment