Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
O
OTSWithFeign
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Siva Naga Someswara Jatla
OTSWithFeign
Commits
86a9dc0a
Commit
86a9dc0a
authored
May 08, 2020
by
Amar Bogari
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added unit test cases and commented integration test cases code.
parent
50f10b71
Changes
11
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
504 additions
and
579 deletions
+504
-579
ClientService.java
...m/nisum/offertransactionservice/client/ClientService.java
+0
-81
StoreProducerFeignClient.java
...ertransactionservice/client/StoreProducerFeignClient.java
+2
-1
EndOfTransactionService.java
...ertransactionservice/service/EndOfTransactionService.java
+0
-1
OfferCallingPEService.java
...ffertransactionservice/service/OfferCallingPEService.java
+1
-4
ClientServiceTest.java
...sum/offertransactionservice/client/ClientServiceTest.java
+89
-89
AbstractTestBase.java
.../offertransactionservice/controller/AbstractTestBase.java
+0
-27
OfferTransactionControllerIntegrationTest.java
...controller/OfferTransactionControllerIntegrationTest.java
+178
-160
OfferTransactionControllerTest.java
...ionservice/controller/OfferTransactionControllerTest.java
+195
-195
EndOfTransactionTest.java
...offertransactionservice/service/EndOfTransactionTest.java
+11
-8
OfferServiceTest.java
...sum/offertransactionservice/service/OfferServiceTest.java
+9
-7
application.properties
src/test/resources/application.properties
+19
-6
No files found.
src/main/java/com/nisum/offertransactionservice/client/ClientService.java
deleted
100644 → 0
View file @
50f10b71
package
com
.
nisum
.
offertransactionservice
.
client
;
import
com.nisum.offertransactionservice.config.OfferTransactionConfig
;
import
com.nisum.offertransactionservice.dto.PERequest
;
import
com.nisum.offertransactionservice.dto.PEResponse
;
import
com.nisum.offertransactionservice.util.ExceptionUtil
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.HttpStatus
;
import
org.springframework.http.MediaType
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.reactive.function.client.ExchangeFilterFunction
;
import
org.springframework.web.reactive.function.client.WebClient
;
import
reactor.core.publisher.Mono
;
import
javax.annotation.PostConstruct
;
@Component
@Slf4j
public
class
ClientService
{
private
WebClient
webClient
;
@Autowired
OfferTransactionConfig
offerTransactionConfig
;
@PostConstruct
public
void
init
()
{
webClient
=
WebClient
.
builder
().
baseUrl
(
offerTransactionConfig
.
getPeBaseUrl
()).
defaultHeader
(
HttpHeaders
.
CONTENT_TYPE
,
MediaType
.
APPLICATION_JSON_VALUE
).
filter
(
logRequest
()).
filter
(
logResponse
()).
build
();
}
private
ExchangeFilterFunction
logRequest
()
{
return
ExchangeFilterFunction
.
ofRequestProcessor
(
clientRequest
->
{
log
.
info
(
"Store Consumer Request {}"
,
clientRequest
);
return
Mono
.
just
(
clientRequest
);
});
}
private
ExchangeFilterFunction
logResponse
()
{
return
ExchangeFilterFunction
.
ofResponseProcessor
(
clientResponse
->
{
log
.
info
(
"Store Consumer Request {}"
,
clientResponse
);
return
Mono
.
just
(
clientResponse
);
});
}
public
Mono
<
String
>
getStringMono
(
String
uuid
)
{
WebClient
build
=
WebClient
.
builder
().
baseUrl
(
offerTransactionConfig
.
getSpBaseUrl
()).
build
();
return
build
.
post
().
uri
(
offerTransactionConfig
.
getStoreProducerUrl
()).
accept
(
MediaType
.
APPLICATION_JSON
).
body
(
Mono
.
just
(
uuid
),
String
.
class
).
retrieve
().
onStatus
(
HttpStatus:
:
is4xxClientError
,
ExceptionUtil:
:
handleError
).
onStatus
(
HttpStatus:
:
is5xxServerError
,
ExceptionUtil:
:
handleError
).
bodyToMono
(
String
.
class
);
}
public
PEResponse
getPeResponseFlux
(
PERequest
peRequest
)
{
return
webClient
.
post
().
uri
(
offerTransactionConfig
.
getPromotionEngineUrl
()).
accept
(
MediaType
.
APPLICATION_JSON
).
contentType
(
MediaType
.
APPLICATION_JSON
).
body
(
Mono
.
just
(
peRequest
),
PERequest
.
class
).
retrieve
().
onStatus
(
HttpStatus:
:
is4xxClientError
,
ExceptionUtil:
:
handleError
).
onStatus
(
HttpStatus:
:
is5xxServerError
,
ExceptionUtil:
:
handleError
).
bodyToFlux
(
PEResponse
.
class
).
blockFirst
();
}
}
src/main/java/com/nisum/offertransactionservice/client/StoreProducerFeignClient.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
client
;
package
com
.
nisum
.
offertransactionservice
.
client
;
import
com.nisum.offertransactionservice.config.FeignClientConfig
;
import
com.nisum.offertransactionservice.dto.PERequest
;
import
com.nisum.offertransactionservice.dto.PERequest
;
import
com.nisum.offertransactionservice.dto.PEResponse
;
import
com.nisum.offertransactionservice.dto.PEResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.PostMapping
;
import
org.springframework.web.bind.annotation.PostMapping
;
@FeignClient
(
name
=
"${storeproducer.application.name}"
)
@FeignClient
(
name
=
"${storeproducer.application.name}"
,
configuration
=
FeignClientConfig
.
class
)
public
interface
StoreProducerFeignClient
{
public
interface
StoreProducerFeignClient
{
@PostMapping
(
value
=
"${endpoint.url.storeProducerUrl}"
)
@PostMapping
(
value
=
"${endpoint.url.storeProducerUrl}"
)
...
...
src/main/java/com/nisum/offertransactionservice/service/EndOfTransactionService.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
service
;
package
com
.
nisum
.
offertransactionservice
.
service
;
import
com.nisum.offertransactionservice.client.ClientService
;
import
com.nisum.offertransactionservice.client.StoreProducerFeignClient
;
import
com.nisum.offertransactionservice.client.StoreProducerFeignClient
;
import
com.nisum.offertransactionservice.genericexception.GlobalApiGenericException
;
import
com.nisum.offertransactionservice.genericexception.GlobalApiGenericException
;
import
lombok.extern.slf4j.Slf4j
;
import
lombok.extern.slf4j.Slf4j
;
...
...
src/main/java/com/nisum/offertransactionservice/service/OfferCallingPEService.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
service
;
package
com
.
nisum
.
offertransactionservice
.
service
;
import
com.nisum.offertransactionservice.client.ClientService
;
import
com.nisum.offertransactionservice.client.PromotionEngineFeignClient
;
import
com.nisum.offertransactionservice.client.PromotionEngineFeignClient
;
import
com.nisum.offertransactionservice.client.StoreProducerFeignClient
;
import
com.nisum.offertransactionservice.converter.OfferConvertion
;
import
com.nisum.offertransactionservice.converter.OfferConvertion
;
import
com.nisum.offertransactionservice.dao.OfferLookupRepo
;
import
com.nisum.offertransactionservice.dao.OfferLookupRepo
;
import
com.nisum.offertransactionservice.dao.OfferMetaDataRepo
;
import
com.nisum.offertransactionservice.dao.OfferMetaDataRepo
;
...
@@ -34,9 +34,6 @@ public class OfferCallingPEService {
...
@@ -34,9 +34,6 @@ public class OfferCallingPEService {
@Autowired
@Autowired
private
OfferLookupRepo
offerLookupRepo
;
private
OfferLookupRepo
offerLookupRepo
;
@Autowired
private
ClientService
clientService
;
@Autowired
@Autowired
private
OfferMetaDataRepo
offerMetaDataRepo
;
private
OfferMetaDataRepo
offerMetaDataRepo
;
...
...
src/test/java/com/nisum/offertransactionservice/client/ClientServiceTest.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
client
;
//
package com.nisum.offertransactionservice.client;
//
//
import
com.nisum.offertransactionservice.config.OfferTransactionConfig
;
//
import com.nisum.offertransactionservice.config.OfferTransactionConfig;
import
com.nisum.offertransactionservice.dto.Item
;
//
import com.nisum.offertransactionservice.dto.Item;
import
com.nisum.offertransactionservice.dto.PERequest
;
//
import com.nisum.offertransactionservice.dto.PERequest;
import
com.nisum.offertransactionservice.dto.PEResponse
;
//
import com.nisum.offertransactionservice.dto.PEResponse;
import
org.junit.jupiter.api.Assertions
;
//
import org.junit.jupiter.api.Assertions;
import
org.junit.jupiter.api.BeforeEach
;
//
import org.junit.jupiter.api.BeforeEach;
import
org.junit.jupiter.api.Test
;
//
import org.junit.jupiter.api.Test;
import
org.mockito.InjectMocks
;
//
import org.mockito.InjectMocks;
import
org.mockito.Mock
;
//
import org.mockito.Mock;
import
org.mockito.MockitoAnnotations
;
//
import org.mockito.MockitoAnnotations;
import
org.springframework.web.reactive.function.client.WebClient
;
//
import org.springframework.web.reactive.function.client.WebClient;
import
reactor.core.publisher.Mono
;
//
import reactor.core.publisher.Mono;
//
import
java.util.ArrayList
;
//
import java.util.ArrayList;
import
java.util.List
;
//
import java.util.List;
//
public
class
ClientServiceTest
{
//
public class ClientServiceTest {
//
//
@InjectMocks
//
@InjectMocks
ClientService
clientService
;
//
ClientService clientService;
//
@Mock
//
@Mock
private
WebClient
webClientMock
;
//
private WebClient webClientMock;
//
@Mock
//
@Mock
private
WebClient
.
RequestHeadersSpec
requestHeadersMock
;
//
private WebClient.RequestHeadersSpec requestHeadersMock;
//
@Mock
//
@Mock
private
WebClient
.
RequestBodySpec
requestBodyMock
;
//
private WebClient.RequestBodySpec requestBodyMock;
//
@Mock
//
@Mock
private
WebClient
.
RequestBodyUriSpec
requestBodyUriMock
;
//
private WebClient.RequestBodyUriSpec requestBodyUriMock;
//
@Mock
//
@Mock
private
WebClient
.
ResponseSpec
responseMock
;
//
private WebClient.ResponseSpec responseMock;
//
@Mock
//
@Mock
OfferTransactionConfig
offerTransactionConfig
;
//
OfferTransactionConfig offerTransactionConfig;
//
//
@BeforeEach
//
@BeforeEach
public
void
setUp
()
throws
Exception
{
//
public void setUp() throws Exception {
MockitoAnnotations
.
initMocks
(
this
);
//
MockitoAnnotations.initMocks(this);
}
//
}
//
@Test
//
@Test
void
getStringMonoTest
(){
//
void getStringMonoTest(){
String
uuid
=
"86fd4146-0540-405b-b621-a95f4ccdfa0d"
;
//
String uuid = "86fd4146-0540-405b-b621-a95f4ccdfa0d";
//when(offerTransactionConfig.getPeBaseUrl()).thenReturn("http://localhost:8089");
//
//when(offerTransactionConfig.getPeBaseUrl()).thenReturn("http://localhost:8089");
//when(offerTransactionConfig.getSpBaseUrl()).thenReturn("http://localhost:8081");
//
//when(offerTransactionConfig.getSpBaseUrl()).thenReturn("http://localhost:8081");
// when(webClientMock.post()).thenReturn(requestBodyUriMock);
//
//
when(webClientMock.post()).thenReturn(requestBodyUriMock);
// when(requestBodyUriMock.uri("/store/producer")).thenReturn(requestBodyMock);
//
//
when(requestBodyUriMock.uri("/store/producer")).thenReturn(requestBodyMock);
// when(requestBodyMock.bodyValue(Mono.just(uuid))).thenReturn(requestHeadersMock);
//
//
when(requestBodyMock.bodyValue(Mono.just(uuid))).thenReturn(requestHeadersMock);
// when(requestHeadersMock.retrieve()).thenReturn(responseMock);
//
//
when(requestHeadersMock.retrieve()).thenReturn(responseMock);
// when(responseMock.bodyToMono(String.class)).thenReturn(Mono.just(uuid));
//
//
when(responseMock.bodyToMono(String.class)).thenReturn(Mono.just(uuid));
Mono
<
String
>
stringMono
=
clientService
.
getStringMono
(
uuid
);
//
Mono<String> stringMono = clientService.getStringMono(uuid);
Assertions
.
assertNotNull
(
stringMono
);
//
Assertions.assertNotNull(stringMono);
}
//
}
//
//
private
PERequest
getPEReq
()
{
//
private PERequest getPEReq() {
PERequest
peRequest
=
new
PERequest
();
//
PERequest peRequest = new PERequest();
peRequest
.
setHhId
(
123L
);
//
peRequest.setHhId(123L);
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);
peRequest
.
setItemList
(
itemList
);
//
peRequest.setItemList(itemList);
return
peRequest
;
//
return peRequest;
}
//
}
//
private
PEResponse
getPeResponse
()
{
//
private PEResponse getPeResponse() {
PEResponse
peResponse
=
new
PEResponse
();
//
PEResponse peResponse = new PEResponse();
peResponse
.
setHhid
(
123L
);
//
peResponse.setHhid(123L);
List
<
Item
>
itemList
=
new
ArrayList
<>();
//
List<Item> itemList = new ArrayList<>();
Item
item1
=
new
Item
(
"Coke"
,
"12"
,
6.05
);
//
Item item1 = new Item("Coke", "12", 6.05);
Item
item2
=
new
Item
(
"Thumpsup"
,
"11"
,
12.32
);
//
Item item2 = new Item("Thumpsup", "11", 12.32);
itemList
.
add
(
item1
);
//
itemList.add(item1);
itemList
.
add
(
item2
);
//
itemList.add(item2);
peResponse
.
setDiscountedItemList
(
itemList
);
//
peResponse.setDiscountedItemList(itemList);
return
peResponse
;
//
return peResponse;
}
//
}
//
}
//
}
src/test/java/com/nisum/offertransactionservice/controller/AbstractTestBase.java
deleted
100644 → 0
View file @
50f10b71
package
com
.
nisum
.
offertransactionservice
.
controller
;
import
com.github.tomakehurst.wiremock.WireMockServer
;
import
org.junit.jupiter.api.AfterAll
;
import
org.junit.jupiter.api.BeforeAll
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
public
abstract
class
AbstractTestBase
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
AbstractTestBase
.
class
);
protected
final
static
int
HTTP_ENDPOINT_PORT
=
9090
;
protected
static
WireMockServer
mWireMockServer
=
new
WireMockServer
(
HTTP_ENDPOINT_PORT
);
@BeforeAll
public
static
void
setup
()
{
mWireMockServer
.
start
();
}
@AfterAll
public
static
void
tearDown
()
{
/* Stop the WireMock server. */
mWireMockServer
.
stop
();
}
}
src/test/java/com/nisum/offertransactionservice/controller/OfferTransactionControllerIntegrationTest.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
controller
;
//package com.nisum.offertransactionservice.controller;
//
import
com.github.tomakehurst.wiremock.junit.WireMockRule
;
//import com.github.tomakehurst.wiremock.junit.WireMockRule;
import
com.nisum.offertransactionservice.dto.*
;
//import com.nisum.offertransactionservice.config.FeignClientConfig;
import
com.nisum.offertransactionservice.model.OfferLookup
;
//import com.nisum.offertransactionservice.dto.*;
import
org.junit.jupiter.api.Assertions
;
//import com.nisum.offertransactionservice.model.OfferLookup;
import
org.junit.jupiter.api.BeforeEach
;
//import org.junit.ClassRule;
import
org.junit.jupiter.api.Test
;
//import org.junit.jupiter.api.Assertions;
import
org.junit.jupiter.api.extension.RegisterExtension
;
//import org.junit.jupiter.api.BeforeEach;
import
org.springframework.beans.factory.annotation.Autowired
;
//import org.junit.jupiter.api.Test;
import
org.springframework.boot.test.context.SpringBootTest
;
//import org.junit.jupiter.api.extension.RegisterExtension;
import
org.springframework.boot.test.web.client.TestRestTemplate
;
//import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.cloud.contract.wiremock.AutoConfigureWireMock
;
//import org.springframework.boot.test.context.SpringBootTest;
import
org.springframework.core.ParameterizedTypeReference
;
//import org.springframework.boot.test.web.client.TestRestTemplate;
import
org.springframework.http.HttpMethod
;
//import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock;
import
org.springframework.http.RequestEntity
;
//import org.springframework.cloud.openfeign.EnableFeignClients;
import
org.springframework.http.ResponseEntity
;
//import org.springframework.cloud.openfeign.FeignClient;
//import org.springframework.core.ParameterizedTypeReference;
import
java.net.URI
;
//import org.springframework.http.HttpMethod;
import
java.util.ArrayList
;
//import org.springframework.http.RequestEntity;
import
java.util.List
;
//import org.springframework.http.ResponseEntity;
import
java.util.stream.Collectors
;
//import org.springframework.web.bind.annotation.PostMapping;
//
import
static
com
.
github
.
tomakehurst
.
wiremock
.
client
.
WireMock
.*;
//import java.net.URI;
//import java.util.ArrayList;
//import java.util.List;
@SpringBootTest
(
webEnvironment
=
SpringBootTest
.
WebEnvironment
.
DEFINED_PORT
)
//import java.util.stream.Collectors;
@AutoConfigureWireMock
//
public
class
OfferTransactionControllerIntegrationTest
extends
AbstractTestBase
{
//import static com.github.tomakehurst.wiremock.client.WireMock.*;
//
@RegisterExtension
//
public
WireMockRule
wireMockRule
=
new
WireMockRule
(
7072
);
//@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.DEFINED_PORT)
//@AutoConfigureWireMock
@Autowired
//@EnableFeignClients(clients = OfferTransactionControllerIntegrationTest.PromotionEngineFeignClient.class)
private
TestRestTemplate
testRestTemplate
;
//public class OfferTransactionControllerIntegrationTest{
//
// @RegisterExtension
@BeforeEach
// @ClassRule
public
void
setUp
()
{
// public WireMockRule wireMockRule = new WireMockRule(9090);
mockForOfferTransactionCall
();
//
mockForEndOfSale
();
// @Autowired
mockForEndOfTransaction
();
// private TestRestTemplate testRestTemplate;
}
//
//
private
void
mockForOfferTransactionCall
()
{
//
mWireMockServer
.
stubFor
(
post
(
urlEqualTo
(
"/offerTransactionCall"
))
// @FeignClient(name = "${pe.application.name}", url="${pe.application.url}", configuration = FeignClientConfig.class)
.
willReturn
(
aResponse
()
// public interface PromotionEngineFeignClient {
.
withStatus
(
200
)
//
.
withHeader
(
"Content-Type"
,
"application/json"
)
// @PostMapping(value = "${endpoint.url.promotionEngineUrl}")
.
withBodyFile
(
"response.json"
)
// ResponseEntity<PEResponse> callPEService(PERequest peRequest);
));
// }
}
//
// @Autowired
private
void
mockForEndOfSale
()
{
// PromotionEngineFeignClient feignClientService;
mWireMockServer
.
stubFor
(
post
(
urlEqualTo
(
"/endOfSale"
))
//
.
willReturn
(
aResponse
()
// @BeforeEach
.
withStatus
(
200
)
// public void setUp() {
.
withHeader
(
"Content-Type"
,
"application/json"
)
// mockForOfferTransactionCall();
.
withBodyFile
(
"endOfSale-response.json"
)
// mockForEndOfSale();
));
// mockForEndOfTransaction();
}
// }
//
private
void
mockForEndOfTransaction
()
{
// private void mockForOfferTransactionCall() {
mWireMockServer
.
stubFor
(
post
(
urlEqualTo
(
"/endOfTransaction"
))
// wireMockRule.stubFor(post(urlEqualTo("/promotionEngine/calculateDiscount"))
.
willReturn
(
aResponse
()
// .willReturn(aResponse()
.
withStatus
(
200
)
// .withStatus(200)
.
withHeader
(
"Content-Type"
,
"application/json"
)
// .withHeader("Content-Type", "application/json")
.
withBodyFile
(
"endOfTransaction-response.json"
)
// .withBodyFile("response.json")
));
// ));
}
// }
//
@Test
// private void mockForEndOfSale() {
public
void
getOfferTransactionResponseTest
()
{
// wireMockRule.stubFor(post(urlEqualTo("/endOfSale"))
URI
uri
=
URI
.
create
(
"http://localhost:7072/offerTransactionCall"
);
// .willReturn(aResponse()
RequestEntity
requestEntity
=
new
RequestEntity
(
getOfferTransactionRequest
(),
HttpMethod
.
POST
,
uri
);
// .withStatus(200)
// .withHeader("Content-Type", "application/json")
ResponseEntity
<
OfferTransactionResponse
>
responseEntity
=
testRestTemplate
.
exchange
(
"http://localhost:7072/offerTransactionCall"
,
HttpMethod
.
POST
,
requestEntity
,
// .withBodyFile("endOfSale-response.json")
new
ParameterizedTypeReference
<
OfferTransactionResponse
>(){}
// ));
);
// }
OfferTransactionResponse
offerTransactionResponse
=
responseEntity
.
getBody
();
//
System
.
out
.
println
(
offerTransactionResponse
);
// private void mockForEndOfTransaction() {
Assertions
.
assertNotNull
(
offerTransactionResponse
.
getTransactionId
());
// wireMockRule.stubFor(post(urlEqualTo("/endOfTransaction"))
// .willReturn(aResponse()
}
// .withStatus(200)
// .withHeader("Content-Type", "application/json")
@Test
// .withBodyFile("endOfTransaction-response.json")
public
void
endOfSaleTest
()
{
// ));
URI
uri
=
URI
.
create
(
"http://localhost:7072/endOfSale"
);
// }
RequestEntity
requestEntity
=
new
RequestEntity
(
getEndOfSaleReq
(),
HttpMethod
.
POST
,
uri
);
//
// @Test
ResponseEntity
<
EndOfSaleResponse
>
responseEntity
=
testRestTemplate
.
exchange
(
"http://localhost:7072/endOfSale"
,
HttpMethod
.
POST
,
requestEntity
,
// public void getOfferTransactionResponseTest() {
new
ParameterizedTypeReference
<
EndOfSaleResponse
>(){}
// URI uri = URI.create("http://localhost:7072/offer-service/offerTransactionCall");
);
// RequestEntity requestEntity = new RequestEntity(getOfferTransactionRequest(),HttpMethod.POST,uri);
EndOfSaleResponse
endOfSaleResponse
=
responseEntity
.
getBody
();
//
Assertions
.
assertNotNull
(
endOfSaleResponse
.
getUuId
());
// ResponseEntity<OfferTransactionResponse> responseEntity = testRestTemplate.exchange("http://localhost:7072/offer-service/offerTransactionCall", HttpMethod.POST,requestEntity,
// new ParameterizedTypeReference<OfferTransactionResponse>(){}
}
// );
// OfferTransactionResponse offerTransactionResponse = responseEntity.getBody();
@Test
// System.out.println(offerTransactionResponse);
public
void
endOfTransactionTest
()
{
// Assertions.assertNotNull(offerTransactionResponse.getTransactionId());
URI
uri
=
URI
.
create
(
"http://localhost:7072/endOfTransaction"
);
//
String
uuid
=
"86fd4146-0540-405b-b621-a95f4ccdfa0d"
;
// }
RequestEntity
requestEntity
=
new
RequestEntity
(
uuid
,
HttpMethod
.
POST
,
uri
);
//
// @Test
ResponseEntity
<
String
>
responseEntity
=
testRestTemplate
.
exchange
(
"http://localhost:7072/endOfTransaction"
,
HttpMethod
.
POST
,
requestEntity
,
// public void endOfSaleTest() {
new
ParameterizedTypeReference
<
String
>(){}
// URI uri = URI.create("http://localhost:7072/endOfSale");
);
// RequestEntity requestEntity = new RequestEntity(getEndOfSaleReq(),HttpMethod.POST,uri);
String
endOfTransactionRes
=
responseEntity
.
getBody
();
//
Assertions
.
assertNotNull
(
endOfTransactionRes
);
// ResponseEntity<EndOfSaleResponse> responseEntity = testRestTemplate.exchange("http://localhost:7072/endOfSale", HttpMethod.POST,requestEntity,
// new ParameterizedTypeReference<EndOfSaleResponse>(){}
}
// );
// EndOfSaleResponse endOfSaleResponse = responseEntity.getBody();
private
EndOfSaleReq
getEndOfSaleReq
()
{
// Assertions.assertNotNull(endOfSaleResponse.getUuId());
EndOfSaleReq
endOfSaleReq
=
new
EndOfSaleReq
();
//
endOfSaleReq
.
setOfferTransactionResponse
(
retOfferTransRes
());
// }
endOfSaleReq
.
setOffers
(
returnOffers
());
//
return
endOfSaleReq
;
// @Test
}
// public void endOfTransactionTest() {
// URI uri = URI.create("http://localhost:7072/endOfTransaction");
// String uuid = "86fd4146-0540-405b-b621-a95f4ccdfa0d";
private
OfferTransactionResponse
retOfferTransRes
()
{
// RequestEntity requestEntity = new RequestEntity(uuid,HttpMethod.POST,uri);
OfferTransactionResponse
offerTransactionResponse
=
new
OfferTransactionResponse
();
//
offerTransactionResponse
.
setHhid
(
"123"
);
// ResponseEntity<String> responseEntity = testRestTemplate.exchange("http://localhost:7072/endOfTransaction", HttpMethod.POST,requestEntity,
List
<
Item
>
itemList
=
new
ArrayList
<>();
// new ParameterizedTypeReference<String>(){}
Item
item1
=
new
Item
(
"Coke"
,
"12"
,
6.05
);
// );
Item
item2
=
new
Item
(
"Thumpsup"
,
"11"
,
12.32
);
// String endOfTransactionRes = responseEntity.getBody();
itemList
.
add
(
item1
);
// Assertions.assertNotNull(endOfTransactionRes);
itemList
.
add
(
item2
);
//
offerTransactionResponse
.
setDiscountedItemList
(
itemList
);
// }
offerTransactionResponse
.
setTransactionId
(
"123456788899999998"
);
//
return
offerTransactionResponse
;
// private EndOfSaleReq getEndOfSaleReq() {
}
// EndOfSaleReq endOfSaleReq = new EndOfSaleReq();
// endOfSaleReq.setOfferTransactionResponse(retOfferTransRes());
// endOfSaleReq.setOffers(returnOffers());
// return endOfSaleReq;
public
List
<
OfferLookup
>
returnOffers
()
{
// }
OfferLookup
offerLookup1
=
new
OfferLookup
(
"1"
,
"12"
,
23L
,
"02"
,
"AND"
,
"BOGO"
);
//
OfferLookup
offerLookup2
=
new
OfferLookup
(
"2"
,
"13"
,
24L
,
"02"
,
"OR"
,
"BXGY"
);
//
List
<
OfferLookup
>
offerLookups
=
new
ArrayList
<>();
// private OfferTransactionResponse retOfferTransRes() {
offerLookups
.
add
(
offerLookup1
);
// OfferTransactionResponse offerTransactionResponse = new OfferTransactionResponse();
offerLookups
.
add
(
offerLookup2
);
// offerTransactionResponse.setHhid("123");
return
offerLookups
.
stream
().
collect
(
Collectors
.
toList
());
// List<Item> itemList = new ArrayList<>();
}
// Item item1 = new Item("Coke", "12", 6.05);
// Item item2 = new Item("Thumpsup", "11", 12.32);
private
OfferTransactionRequest
getOfferTransactionRequest
()
{
// itemList.add(item1);
OfferTransactionRequest
offerTransactionRequest
=
new
OfferTransactionRequest
();
// itemList.add(item2);
offerTransactionRequest
.
setHhId
(
"54321"
);
// offerTransactionResponse.setDiscountedItemList(itemList);
offerTransactionRequest
.
setItemList
(
getItemList
());
// offerTransactionResponse.setTransactionId("123456788899999998");
return
offerTransactionRequest
;
// return offerTransactionResponse;
}
// }
//
private
List
<
Item
>
getItemList
()
{
//
List
<
Item
>
itemList
=
new
ArrayList
<>();
//
Item
item1
=
new
Item
(
"Coke"
,
"12"
,
13.05
);
// public List<OfferLookup> returnOffers() {
Item
item2
=
new
Item
(
"Thumpsup"
,
"11"
,
14.05
);
// OfferLookup offerLookup1 = new OfferLookup("1", "12", 23L, "02", "AND", "BOGO");
itemList
.
add
(
item1
);
// OfferLookup offerLookup2 = new OfferLookup("2", "13", 24L, "02", "OR", "BXGY");
itemList
.
add
(
item2
);
// List<OfferLookup> offerLookups = new ArrayList<>();
return
itemList
;
// offerLookups.add(offerLookup1);
}
// offerLookups.add(offerLookup2);
}
// return offerLookups.stream().collect(Collectors.toList());
// }
//
// private OfferTransactionRequest getOfferTransactionRequest() {
// OfferTransactionRequest offerTransactionRequest = new OfferTransactionRequest();
// offerTransactionRequest.setHhId("54321");
// offerTransactionRequest.setItemList(getItemList());
// return offerTransactionRequest;
// }
//
// 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);
// return itemList;
// }
//}
src/test/java/com/nisum/offertransactionservice/controller/OfferTransactionControllerTest.java
View file @
86a9dc0a
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.EndOfSaleRepo;
import
com.nisum.offertransactionservice.dao.OfferLookupRepo
;
//import com.nisum.offertransactionservice.dao.OfferLookupRepo;
import
com.nisum.offertransactionservice.dao.OfferMetaDataRepo
;
//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.EndOfSaleEntity;
import
com.nisum.offertransactionservice.model.OfferLookup
;
//import com.nisum.offertransactionservice.model.OfferLookup;
import
com.nisum.offertransactionservice.model.OfferMeta
;
//import com.nisum.offertransactionservice.model.OfferMeta;
import
com.nisum.offertransactionservice.service.OfferCallingPEService
;
//import com.nisum.offertransactionservice.service.OfferCallingPEService;
import
org.junit.jupiter.api.Test
;
//import org.junit.jupiter.api.Test;
import
org.junit.jupiter.params.ParameterizedTest
;
//import org.junit.jupiter.params.ParameterizedTest;
import
org.junit.jupiter.params.provider.ValueSource
;
//import org.junit.jupiter.params.provider.ValueSource;
import
org.mockito.ArgumentMatchers
;
//import org.mockito.ArgumentMatchers;
import
org.mockito.InjectMocks
;
//import org.mockito.InjectMocks;
import
org.mockito.Mock
;
//import org.mockito.Mock;
import
org.mockito.Mockito
;
//import org.mockito.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.context.annotation.Description
;
//import org.springframework.context.annotation.Description;
import
reactor.core.publisher.Mono
;
//import reactor.core.publisher.Mono;
//
import
java.io.IOException
;
//import java.io.IOException;
import
java.time.LocalDateTime
;
//import java.time.LocalDateTime;
import
java.util.*
;
//import java.util.*;
//
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
//import static org.junit.jupiter.api.Assertions.assertEquals;
import
static
org
.
mockito
.
Mockito
.
when
;
//import static org.mockito.Mockito.when;
//
@SpringBootTest
//@SpringBootTest
class
OfferTransactionControllerTest
{
//class OfferTransactionControllerTest {
//
@InjectMocks
// @InjectMocks
@Autowired
// @Autowired
private
OfferTransactionController
offerTransactionController
;
// private OfferTransactionController offerTransactionController;
//
@Mock
// @Mock
private
OfferLookupRepo
offerLookupRepo
;
// private OfferLookupRepo offerLookupRepo;
//
@Mock
// @Mock
private
OfferMetaDataRepo
offerMetaDataRepo
;
// private OfferMetaDataRepo offerMetaDataRepo;
//
@Mock
// @Mock
private
EndOfSaleRepo
endOfSaleRepo
;
// private EndOfSaleRepo endOfSaleRepo;
//
@Mock
// @Mock
private
ClientService
clientService
;
// private ClientService clientService;
//
private
String
HH_ID_FOR_END_OF_SALE
=
"id01"
;
// private String HH_ID_FOR_END_OF_SALE = "id01";
//
private
String
TRANSACTION_ID_FOR_END_OF_SALE
=
"tx01"
;
// private String TRANSACTION_ID_FOR_END_OF_SALE = "tx01";
//
private
final
String
UU_ID_FOR_END_OF_TRANSACTION
=
"id01"
;
// private final String UU_ID_FOR_END_OF_TRANSACTION = "id01";
//
private
String
DISCOUNT_DESC
=
"10 percent"
;
// private String DISCOUNT_DESC = "10 percent";
//
//
@Mock
// @Mock
private
OfferCallingPEService
offerCallingPEService
;
// private OfferCallingPEService offerCallingPEService;
//
@Description
(
"Component test for getOfferTransactionResponse method"
)
// @Description("Component test for getOfferTransactionResponse method")
@Test
// @Test
void
getOfferTransactionResponse
()
throws
InterruptedException
{
// void getOfferTransactionResponse() throws InterruptedException {
when
(
offerLookupRepo
.
findByHhId
(
ArgumentMatchers
.
any
(),
ArgumentMatchers
.
any
())).
thenReturn
(
getOffers
());
// when(offerLookupRepo.findByHhId(ArgumentMatchers.any(),ArgumentMatchers.any())).thenReturn(getOffers());
when
(
clientService
.
getPeResponseFlux
(
Mockito
.
any
(
PERequest
.
class
))).
thenReturn
(
getPeResponse
());
// when(clientService.getPeResponseFlux(Mockito.any(PERequest.class))).thenReturn(getPeResponse());
when
(
offerCallingPEService
.
getOfferMetaDto
(
ArgumentMatchers
.
any
())).
thenReturn
(
getOfferLookupDto
());
// when(offerCallingPEService.getOfferMetaDto(ArgumentMatchers.any())).thenReturn(getOfferLookupDto());
Mockito
.
doReturn
(
Optional
.
of
(
getOfferMeta
())).
when
(
offerMetaDataRepo
).
findByOfferIdAndOfferStatusIgnoreCase
(
Mockito
.
anyLong
(),
Mockito
.
anyString
());
// Mockito.doReturn(Optional.of(getOfferMeta())).when(offerMetaDataRepo).findByOfferIdAndOfferStatusIgnoreCase(Mockito.anyLong(), Mockito.anyString());
OfferTransactionResponse
offerTransactionResponse
=
offerTransactionController
.
getOfferTransactionResponse
(
getOfferTransactionRequest
());
// OfferTransactionResponse offerTransactionResponse = offerTransactionController.getOfferTransactionResponse(getOfferTransactionRequest());
assertEquals
(
true
,
Objects
.
nonNull
(
offerTransactionResponse
.
getTransactionId
()));
// assertEquals(true,Objects.nonNull(offerTransactionResponse.getTransactionId()));
}
// }
//
@Description
(
"Component test for endOfSale method"
)
// @Description("Component test for endOfSale method")
@Test
// @Test
void
endOfSale
()
throws
IOException
{
// void endOfSale() throws IOException {
when
(
endOfSaleRepo
.
save
(
Mockito
.
any
(
EndOfSaleEntity
.
class
))).
thenReturn
(
new
EndOfSaleEntity
());
// when(endOfSaleRepo.save(Mockito.any(EndOfSaleEntity.class))).thenReturn(new EndOfSaleEntity());
assertEquals
(
true
,
Objects
.
nonNull
(
offerTransactionController
.
endOfSale
(
buildEndOfSaleReq
())));
// assertEquals(true,Objects.nonNull(offerTransactionController.endOfSale(buildEndOfSaleReq())));
}
// }
//
@Description
(
"Component test for endOfTransaction method"
)
// @Description("Component test for endOfTransaction method")
@ParameterizedTest
// @ParameterizedTest
@ValueSource
(
strings
=
{
UU_ID_FOR_END_OF_TRANSACTION
})
// @ValueSource(strings = {UU_ID_FOR_END_OF_TRANSACTION})
void
endOfTransaction
(
String
uuId
)
{
// void endOfTransaction(String uuId) {
when
(
clientService
.
getStringMono
(
Mockito
.
anyString
())).
thenReturn
(
getMonoOfString
());
// when(clientService.getStringMono(Mockito.anyString())).thenReturn(getMonoOfString());
assertEquals
(
true
,
Objects
.
nonNull
(
offerTransactionController
.
endOfTransaction
(
uuId
)));
// assertEquals(true,Objects.nonNull(offerTransactionController.endOfTransaction(uuId)));
}
// }
//
private
List
<
OfferLookup
>
getOffers
()
{
// private List<OfferLookup> getOffers() {
OfferLookup
offerLookup1
=
new
OfferLookup
(
"123"
,
"12"
,
234L
,
"02"
,
"AND"
,
"BOGO"
);
// OfferLookup offerLookup1 = new OfferLookup("123", "12", 234L, "02", "AND", "BOGO");
OfferLookup
offerLookup2
=
new
OfferLookup
(
"1213"
,
"13"
,
234L
,
"02"
,
"OR"
,
"BXGY"
);
// OfferLookup offerLookup2 = new OfferLookup("1213", "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
;
// return offerLookups;
}
// }
//
private
OfferTransactionRequest
getOfferTransactionRequest
()
{
// private OfferTransactionRequest getOfferTransactionRequest() {
OfferTransactionRequest
offerTransactionRequest
=
new
OfferTransactionRequest
();
// OfferTransactionRequest offerTransactionRequest = new OfferTransactionRequest();
offerTransactionRequest
.
setHhId
(
"54321"
);
// offerTransactionRequest.setHhId("54321");
offerTransactionRequest
.
setItemList
(
getItemList
());
// offerTransactionRequest.setItemList(getItemList());
return
offerTransactionRequest
;
// return offerTransactionRequest;
}
// }
//
private
PEResponse
getPeResponse
()
{
// private PEResponse getPeResponse() {
PEResponse
peResponse
=
new
PEResponse
();
// PEResponse peResponse = new PEResponse();
peResponse
.
setHhid
(
123L
);
// peResponse.setHhid(123L);
peResponse
.
setDiscountedItemList
(
getItemList
());
// peResponse.setDiscountedItemList(getItemList());
return
peResponse
;
// return peResponse;
}
// }
//
private
EndOfSaleReq
buildEndOfSaleReq
()
{
// private EndOfSaleReq buildEndOfSaleReq() {
OfferTransactionResponse
offerTransactionResponse
=
new
OfferTransactionResponse
(
HH_ID_FOR_END_OF_SALE
,
TRANSACTION_ID_FOR_END_OF_SALE
,
getItemList
(),
DISCOUNT_DESC
);
// OfferTransactionResponse offerTransactionResponse = new OfferTransactionResponse(HH_ID_FOR_END_OF_SALE, TRANSACTION_ID_FOR_END_OF_SALE, getItemList(),DISCOUNT_DESC);
EndOfSaleReq
endOfSaleReq
=
new
EndOfSaleReq
(
offerTransactionResponse
,
getOffers
());
// EndOfSaleReq endOfSaleReq = new EndOfSaleReq(offerTransactionResponse, getOffers());
return
endOfSaleReq
;
// return endOfSaleReq;
}
// }
//
private
List
<
Item
>
getItemList
()
{
// 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);
return
itemList
;
// return itemList;
}
// }
private
Mono
<
String
>
getMonoOfString
()
{
// private Mono<String> getMonoOfString() {
return
Mono
.
just
(
"MONO_TO_STRING"
);
// return Mono.just("MONO_TO_STRING");
}
// }
//
//
private
OfferMeta
getOfferMeta
(){
// private OfferMeta getOfferMeta(){
OfferMeta
offerMetaDTO
=
new
OfferMeta
();
// OfferMeta offerMetaDTO = new OfferMeta();
offerMetaDTO
.
setDiscount
(
"discount"
);
// offerMetaDTO.setDiscount("discount");
offerMetaDTO
.
setEligibility
(
"eligibility"
);
// offerMetaDTO.setEligibility("eligibility");
offerMetaDTO
.
setExpiryTime
(
LocalDateTime
.
of
(
2021
,
01
,
01
,
01
,
01
));
// offerMetaDTO.setExpiryTime(LocalDateTime.of(2021,01,01,01,01));
offerMetaDTO
.
setStartTime
(
LocalDateTime
.
of
(
2020
,
01
,
01
,
01
,
01
));
// offerMetaDTO.setStartTime(LocalDateTime.of(2020,01,01,01,01));
offerMetaDTO
.
setOfferDesc
(
"30 percent"
);
// offerMetaDTO.setOfferDesc("30 percent");
offerMetaDTO
.
setOfferId
(
1L
);
// offerMetaDTO.setOfferId(1L);
offerMetaDTO
.
setOfferStatus
(
"Active"
);
// offerMetaDTO.setOfferStatus("Active");
offerMetaDTO
.
setRcptTxt
(
"text"
);
// offerMetaDTO.setRcptTxt("text");
offerMetaDTO
.
setOfferType
(
"aaa"
);
// offerMetaDTO.setOfferType("aaa");
return
offerMetaDTO
;
// return offerMetaDTO;
}
// }
//
//
private
List
<
OfferLookupDTO
>
getOfferLookupDto
(){
// private List<OfferLookupDTO> getOfferLookupDto(){
OfferLookupDTO
offerLookupDTO
=
new
OfferLookupDTO
();
// OfferLookupDTO offerLookupDTO = new OfferLookupDTO();
offerLookupDTO
.
setId
(
"123"
);
// offerLookupDTO.setId("123");
offerLookupDTO
.
setIdType
(
"1234"
);
// offerLookupDTO.setIdType("1234");
offerLookupDTO
.
setOfferId
(
1L
);
// offerLookupDTO.setOfferId(1L);
offerLookupDTO
.
setPreCondition
(
"And"
);
// offerLookupDTO.setPreCondition("And");
offerLookupDTO
.
setStoreId
(
"001"
);
// offerLookupDTO.setStoreId("001");
offerLookupDTO
.
setTerminal
(
"001"
);
// offerLookupDTO.setTerminal("001");
//
OfferMetaDTO
offerMetaDTO
=
new
OfferMetaDTO
();
// OfferMetaDTO offerMetaDTO = new OfferMetaDTO();
offerMetaDTO
.
setDiscount
(
"discount"
);
// offerMetaDTO.setDiscount("discount");
offerMetaDTO
.
setEligibility
(
"eligibility"
);
// offerMetaDTO.setEligibility("eligibility");
offerMetaDTO
.
setExpiryTime
(
LocalDateTime
.
of
(
2021
,
01
,
01
,
01
,
01
));
// offerMetaDTO.setExpiryTime(LocalDateTime.of(2021,01,01,01,01));
offerMetaDTO
.
setStartTime
(
LocalDateTime
.
of
(
2020
,
01
,
01
,
01
,
01
));
// offerMetaDTO.setStartTime(LocalDateTime.of(2020,01,01,01,01));
offerMetaDTO
.
setOfferDesc
(
"30 percent"
);
// offerMetaDTO.setOfferDesc("30 percent");
offerMetaDTO
.
setOfferId
(
1L
);
// offerMetaDTO.setOfferId(1L);
offerMetaDTO
.
setOfferStatus
(
"Active"
);
// offerMetaDTO.setOfferStatus("Active");
offerMetaDTO
.
setRcptTxt
(
"text"
);
// offerMetaDTO.setRcptTxt("text");
offerMetaDTO
.
setOfferType
(
"aaa"
);
// offerMetaDTO.setOfferType("aaa");
//
offerLookupDTO
.
setOfferMetaDTO
(
offerMetaDTO
);
// offerLookupDTO.setOfferMetaDTO(offerMetaDTO);
//
//
OfferLookupDTO
offerLookupDTO1
=
new
OfferLookupDTO
();
// OfferLookupDTO offerLookupDTO1 = new OfferLookupDTO();
offerLookupDTO1
.
setId
(
"123"
);
// offerLookupDTO1.setId("123");
offerLookupDTO1
.
setIdType
(
"1234"
);
// offerLookupDTO1.setIdType("1234");
offerLookupDTO1
.
setOfferId
(
1L
);
// offerLookupDTO1.setOfferId(1L);
offerLookupDTO1
.
setPreCondition
(
"And"
);
// offerLookupDTO1.setPreCondition("And");
offerLookupDTO1
.
setStoreId
(
"001"
);
// offerLookupDTO1.setStoreId("001");
offerLookupDTO1
.
setTerminal
(
"001"
);
// offerLookupDTO1.setTerminal("001");
//
OfferMetaDTO
offerMetaDTO1
=
new
OfferMetaDTO
();
// OfferMetaDTO offerMetaDTO1 = new OfferMetaDTO();
offerMetaDTO1
.
setDiscount
(
"discount"
);
// offerMetaDTO1.setDiscount("discount");
offerMetaDTO1
.
setEligibility
(
"eligibility"
);
// offerMetaDTO1.setEligibility("eligibility");
offerMetaDTO1
.
setExpiryTime
(
LocalDateTime
.
of
(
2021
,
01
,
01
,
01
,
01
));
// offerMetaDTO1.setExpiryTime(LocalDateTime.of(2021,01,01,01,01));
offerMetaDTO1
.
setStartTime
(
LocalDateTime
.
of
(
2020
,
01
,
01
,
01
,
01
));
// offerMetaDTO1.setStartTime(LocalDateTime.of(2020,01,01,01,01));
offerMetaDTO1
.
setOfferDesc
(
"20 percent"
);
// offerMetaDTO1.setOfferDesc("20 percent");
offerMetaDTO1
.
setOfferId
(
1L
);
// offerMetaDTO1.setOfferId(1L);
offerMetaDTO1
.
setOfferStatus
(
"Active"
);
// offerMetaDTO1.setOfferStatus("Active");
offerMetaDTO1
.
setRcptTxt
(
"text"
);
// offerMetaDTO1.setRcptTxt("text");
offerMetaDTO1
.
setOfferType
(
"aaa"
);
// offerMetaDTO1.setOfferType("aaa");
//
offerLookupDTO1
.
setOfferMetaDTO
(
offerMetaDTO
);
// offerLookupDTO1.setOfferMetaDTO(offerMetaDTO);
//
//
List
<
OfferLookupDTO
>
offerLookupDTOList
=
Arrays
.
asList
(
offerLookupDTO1
,
offerLookupDTO
);
// List<OfferLookupDTO> offerLookupDTOList = Arrays.asList(offerLookupDTO1, offerLookupDTO);
return
offerLookupDTOList
;
// return offerLookupDTOList;
//
//
}
// }
}
//}
\ No newline at end of file
\ No newline at end of file
src/test/java/com/nisum/offertransactionservice/service/EndOfTransactionTest.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
service
;
package
com
.
nisum
.
offertransactionservice
.
service
;
import
com.nisum.offertransactionservice.client.
ClientService
;
import
com.nisum.offertransactionservice.client.
StoreProducerFeignClient
;
import
com.nisum.offertransactionservice.genericexception.GlobalApiGenericException
;
import
com.nisum.offertransactionservice.genericexception.GlobalApiGenericException
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.DisplayName
;
import
org.junit.jupiter.api.DisplayName
;
...
@@ -11,10 +11,11 @@ import org.mockito.ArgumentMatchers;
...
@@ -11,10 +11,11 @@ import org.mockito.ArgumentMatchers;
import
org.mockito.InjectMocks
;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.Mock
;
import
org.mockito.MockitoAnnotations
;
import
org.mockito.MockitoAnnotations
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
reactor.core.publisher.Mono
;
import
reactor.core.publisher.Mono
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertNotNull
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertThrows
;
import
static
org
.
mockito
.
Mockito
.
when
;
import
static
org
.
mockito
.
Mockito
.
when
;
public
class
EndOfTransactionTest
{
public
class
EndOfTransactionTest
{
...
@@ -23,7 +24,8 @@ public class EndOfTransactionTest {
...
@@ -23,7 +24,8 @@ public class EndOfTransactionTest {
private
EndOfTransactionService
endOfTransactionService
;
private
EndOfTransactionService
endOfTransactionService
;
@Mock
@Mock
private
ClientService
clientService
;
@Autowired
private
StoreProducerFeignClient
storeProducerFeignClient
;
@BeforeEach
@BeforeEach
public
void
setUp
()
throws
Exception
{
public
void
setUp
()
throws
Exception
{
...
@@ -35,10 +37,11 @@ public class EndOfTransactionTest {
...
@@ -35,10 +37,11 @@ public class EndOfTransactionTest {
@ParameterizedTest
@ParameterizedTest
@ValueSource
(
strings
={
"86fd4146-0540-405b-b621-a95f4ccdfa0d"
})
@ValueSource
(
strings
={
"86fd4146-0540-405b-b621-a95f4ccdfa0d"
})
public
void
endOfTransactionTest
(
String
uuid
)
{
public
void
endOfTransactionTest
(
String
uuid
)
{
ResponseEntity
<
String
>
responseEntity
=
ResponseEntity
.
ok
(
"test"
);
when
(
clientService
.
getStringMono
(
ArgumentMatchers
.
any
())).
thenReturn
(
Mono
.
just
(
"test"
));
when
(
storeProducerFeignClient
.
callStoreProducer
(
ArgumentMatchers
.
any
())).
thenReturn
(
responseEntity
);
assertNotNull
(
endOfTransactionService
.
endOfTransaction
(
uuid
));
String
storeResponse
=
endOfTransactionService
.
endOfTransaction
(
uuid
);
assertNotNull
(
storeResponse
);
assertEquals
(
"test"
,
storeResponse
);
}
}
...
...
src/test/java/com/nisum/offertransactionservice/service/OfferServiceTest.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
service
;
package
com
.
nisum
.
offertransactionservice
.
service
;
import
com.nisum.offertransactionservice.client.
ClientService
;
import
com.nisum.offertransactionservice.client.
PromotionEngineFeignClient
;
import
com.nisum.offertransactionservice.dao.OfferLookupRepo
;
import
com.nisum.offertransactionservice.dao.OfferLookupRepo
;
import
com.nisum.offertransactionservice.dao.OfferMetaDataRepo
;
import
com.nisum.offertransactionservice.dao.OfferMetaDataRepo
;
import
com.nisum.offertransactionservice.dto.*
;
import
com.nisum.offertransactionservice.dto.*
;
...
@@ -17,6 +17,8 @@ import org.mockito.ArgumentMatchers;
...
@@ -17,6 +17,8 @@ import org.mockito.ArgumentMatchers;
import
org.mockito.InjectMocks
;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.Mock
;
import
org.mockito.MockitoAnnotations
;
import
org.mockito.MockitoAnnotations
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
...
@@ -42,21 +44,21 @@ public class OfferServiceTest {
...
@@ -42,21 +44,21 @@ public class OfferServiceTest {
@Mock
@Mock
private
OfferMetaDataRepo
offerMetaDataRepo
;
private
OfferMetaDataRepo
offerMetaDataRepo
;
@Mock
private
PromotionEngineFeignClient
feignClientService
;
@BeforeEach
@BeforeEach
public
void
setUp
()
throws
Exception
{
public
void
setUp
()
throws
Exception
{
MockitoAnnotations
.
initMocks
(
this
);
MockitoAnnotations
.
initMocks
(
this
);
}
}
@Mock
ClientService
clientService
;
@DisplayName
(
"testing the getDiscountedItemList method"
)
@DisplayName
(
"testing the getDiscountedItemList method"
)
@ParameterizedTest
@ParameterizedTest
@MethodSource
(
"getOfferTransactionRequestSource"
)
@MethodSource
(
"getOfferTransactionRequestSource"
)
public
void
testGetDiscountedItemList
(
OfferTransactionRequest
offerTransactionRequest
)
{
public
void
testGetDiscountedItemList
(
OfferTransactionRequest
offerTransactionRequest
)
{
when
(
offerLookupRepo
.
findByHhId
(
ArgumentMatchers
.
any
(),
ArgumentMatchers
.
any
())).
thenReturn
(
returnOffers
());
when
(
offerLookupRepo
.
findByHhId
(
ArgumentMatchers
.
any
(),
ArgumentMatchers
.
any
())).
thenReturn
(
returnOffers
());
when
(
clientService
.
getPeResponseFlux
(
ArgumentMatchers
.
any
())).
thenReturn
(
getPeResponse
());
when
(
feignClientService
.
callPEService
(
ArgumentMatchers
.
any
())).
thenReturn
(
getPeResponse
());
doReturn
(
getOfferMeta
()).
when
(
offerMetaDataRepo
).
findByOfferIdAndOfferStatusIgnoreCase
(
ArgumentMatchers
.
any
(),
ArgumentMatchers
.
any
());
doReturn
(
getOfferMeta
()).
when
(
offerMetaDataRepo
).
findByOfferIdAndOfferStatusIgnoreCase
(
ArgumentMatchers
.
any
(),
ArgumentMatchers
.
any
());
OfferTransactionResponse
offerTransactionResponse
=
offerCallingPEService
.
getDiscountedItemList
(
offerTransactionRequest
);
OfferTransactionResponse
offerTransactionResponse
=
offerCallingPEService
.
getDiscountedItemList
(
offerTransactionRequest
);
assertNotNull
(
offerTransactionResponse
,
()->
"response should not be null"
);
assertNotNull
(
offerTransactionResponse
,
()->
"response should not be null"
);
...
@@ -95,7 +97,7 @@ public class OfferServiceTest {
...
@@ -95,7 +97,7 @@ public class OfferServiceTest {
return
offerTransactionResponse
;
return
offerTransactionResponse
;
}
}
private
PEResponse
getPeResponse
()
{
private
ResponseEntity
<
PEResponse
>
getPeResponse
()
{
PEResponse
peResponse
=
new
PEResponse
();
PEResponse
peResponse
=
new
PEResponse
();
peResponse
.
setHhid
(
123L
);
peResponse
.
setHhid
(
123L
);
List
<
Item
>
itemList
=
new
ArrayList
<>();
List
<
Item
>
itemList
=
new
ArrayList
<>();
...
@@ -104,7 +106,7 @@ public class OfferServiceTest {
...
@@ -104,7 +106,7 @@ public class OfferServiceTest {
itemList
.
add
(
item1
);
itemList
.
add
(
item1
);
itemList
.
add
(
item2
);
itemList
.
add
(
item2
);
peResponse
.
setDiscountedItemList
(
itemList
);
peResponse
.
setDiscountedItemList
(
itemList
);
return
peResponse
;
return
ResponseEntity
.
ok
(
peResponse
)
;
}
}
private
PERequest
getPEReq
()
{
private
PERequest
getPEReq
()
{
...
...
src/test/resources/application.properties
View file @
86a9dc0a
spring.datasource.url
=
jdbc:postgresql://127.0.0.1:5432/storedb
server.port
=
7072
spring.datasource.username
=
postgres
spring.application.name
=
ots
spring.datasource.password
=
dbpwd
# PE Application properties
pe.application.name
=
pe
pe.application.url
=
http://localhost:9090
endpoint.url.promotionEngineUrl
=
/promotionEngine/calculateDiscount
endpoint.url.promotionEngineUrl
=
/promotionEngine/calculateDiscount
endpoint.url.peBaseUrl
=
http://localhost:7073
# Store Producer Application properties
storeproducer.application.name
=
storeproducer
endpoint.url.storeProducerUrl
=
/store/producer
endpoint.url.storeProducerUrl
=
/store/producer
endpoint.url.spBaseUrl
=
http://localhost:7070
server.port
=
7072
#Eureka server url
eureka.client.serviceUrl.defaultZone
=
http://localhost:8761/eureka
endpoints.restart.enabled
=
true
endpoints.shutdown.enabled
=
true
endpoints.health.sensitive
=
false
maxattempts
=
3
backoff
=
2000
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment