Commit 46315e2b authored by sboppud's avatar sboppud

[Sai Boppudi] Component test fopr Offer Transaction Service Module

parent 65c11c38
package com.nisum.offertransactionservice.controller; package com.nisum.offertransactionservice.controller;
import com.nisum.offertransactionservice.client.ClientService; import com.nisum.offertransactionservice.client.ClientService;
import com.nisum.offertransactionservice.dao.EndOfSaleRepo;
import com.nisum.offertransactionservice.dao.OfferLookupRepo; import com.nisum.offertransactionservice.dao.OfferLookupRepo;
import com.nisum.offertransactionservice.dao.OfferMetaDataRepo;
import com.nisum.offertransactionservice.dto.*; import com.nisum.offertransactionservice.dto.*;
import com.nisum.offertransactionservice.model.EndOfSaleEntity;
import com.nisum.offertransactionservice.model.OfferLookup; import com.nisum.offertransactionservice.model.OfferLookup;
import com.nisum.offertransactionservice.service.OfferCallingPEService; import com.nisum.offertransactionservice.model.OfferMeta;
import org.junit.Assert; import org.junit.jupiter.api.Test;
import org.junit.Before; import org.mockito.InjectMocks;
import org.junit.Test; import org.mockito.Mock;
import org.junit.runner.RunWith; import org.mockito.Mockito;
import org.mockito.*;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.context.annotation.Description;
import org.springframework.test.context.junit4.SpringRunner; import reactor.core.publisher.Mono;
import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Objects; 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; import static org.mockito.Mockito.when;
@RunWith(SpringRunner.class)
@SpringBootTest @SpringBootTest
public class OfferControllerComponentTest { class OfferTransactionControllerTest {
@InjectMocks
private OfferTransactionController offerTransactionController = new OfferTransactionController();
@InjectMocks @InjectMocks
private OfferCallingPEService offerCallingPEService = new OfferCallingPEService(); @Autowired
private OfferTransactionController offerTransactionController;
@Mock @Mock
private OfferLookupRepo offerLookupRepo; private OfferLookupRepo offerLookupRepo;
@Mock
private OfferMetaDataRepo offerMetaDataRepo;
@Mock
private EndOfSaleRepo endOfSaleRepo;
@Mock @Mock
private ClientService clientService; private ClientService clientService;
@Before private String HH_ID_FOR_END_OF_SALE = "id01";
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this); 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 @Test
public void test() throws InterruptedException { void getOfferTransactionResponse() throws InterruptedException {
when(offerLookupRepo.findAll()).thenReturn(returnOffers()); when(offerLookupRepo.findAll()).thenReturn(getOffers());
when(clientService.getPeResponseFlux(ArgumentMatchers.any())).thenReturn(getPeResponse()); 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()); OfferTransactionResponse offerTransactionResponse = offerTransactionController.getOfferTransactionResponse(getOfferTransactionRequest());
Assert.assertEquals(Objects.nonNull(offerTransactionResponse.getTransactionId()),true); assertEquals(Objects.nonNull(offerTransactionResponse.getTransactionId()),true);
} }
@Description("Component test for endOfSale method")
@Test
private PERequest getPEReq() { void endOfSale() throws IOException {
PERequest peRequest = new PERequest(); doNothing().when(endOfSaleRepo.save(Mockito.any(EndOfSaleEntity.class)));
peRequest.setHhId("123"); assertEquals(Objects.nonNull(offerTransactionController.endOfSale(buildEndOfSaleReq())),true);
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;
} }
private PEResponse getPeResponse() { @Description("Component test for endOfTransaction method")
PEResponse peResponse = new PEResponse(); @Test
peResponse.setHhid("123"); void endOfTransaction() {
List<Item> itemList = new ArrayList<>(); when(clientService.getStringMono(Mockito.anyString())).thenReturn(getMonoOfString());
Item item1 = new Item("Coke", "12", 6.05); assertEquals(Objects.nonNull(offerTransactionController.endOfTransaction(UU_ID_FOR_END_OF_TRANSACTION)),true);
Item item2 = new Item("Thumpsup", "11", 12.32);
itemList.add(item1);
itemList.add(item2);
peResponse.setDiscountedItemList(itemList);
return peResponse;
} }
public List<OfferLookup> returnOffers() { private List<OfferLookup> getOffers() {
OfferLookup offerLookup1 = new OfferLookup(1L, "12", 234L, "02", "AND", "BOGO"); OfferLookup offerLookup1 = new OfferLookup(1L, "12", 234L, "02", "AND", "BOGO");
OfferLookup offerLookup2 = new OfferLookup(2l, "13", 234L, "02", "OR", "BXGY"); OfferLookup offerLookup2 = new OfferLookup(2l, "13", 234L, "02", "OR", "BXGY");
List<OfferLookup> offerLookups = new ArrayList<>(); List<OfferLookup> offerLookups = new ArrayList<>();
offerLookups.add(offerLookup1); offerLookups.add(offerLookup1);
offerLookups.add(offerLookup2); offerLookups.add(offerLookup2);
return offerLookups.stream().collect(Collectors.toList()); return offerLookups;
} }
private OfferTransactionRequest getOfferTransactionRequest() { private OfferTransactionRequest getOfferTransactionRequest() {
OfferTransactionRequest offerTransactionRequest = new OfferTransactionRequest(); OfferTransactionRequest offerTransactionRequest = new OfferTransactionRequest();
offerTransactionRequest.setHhId("123"); 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<>(); List<Item> itemList = new ArrayList<>();
Item item1 = new Item("Coke", "12", 13.05); Item item1 = new Item("Coke", "12", 13.05);
Item item2 = new Item("Thumpsup", "11", 14.05); Item item2 = new Item("Thumpsup", "11", 14.05);
itemList.add(item1); itemList.add(item1);
itemList.add(item2); itemList.add(item2);
offerTransactionRequest.setItemList(itemList); return itemList;
return offerTransactionRequest;
} }
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