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
;
import
com.nisum.offertransactionservice.config.FeignClientConfig
;
import
com.nisum.offertransactionservice.dto.PERequest
;
import
com.nisum.offertransactionservice.dto.PEResponse
;
import
org.springframework.cloud.openfeign.FeignClient
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.web.bind.annotation.PostMapping
;
@FeignClient
(
name
=
"${storeproducer.application.name}"
)
@FeignClient
(
name
=
"${storeproducer.application.name}"
,
configuration
=
FeignClientConfig
.
class
)
public
interface
StoreProducerFeignClient
{
@PostMapping
(
value
=
"${endpoint.url.storeProducerUrl}"
)
...
...
src/main/java/com/nisum/offertransactionservice/service/EndOfTransactionService.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
service
;
import
com.nisum.offertransactionservice.client.ClientService
;
import
com.nisum.offertransactionservice.client.StoreProducerFeignClient
;
import
com.nisum.offertransactionservice.genericexception.GlobalApiGenericException
;
import
lombok.extern.slf4j.Slf4j
;
...
...
src/main/java/com/nisum/offertransactionservice/service/OfferCallingPEService.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
service
;
import
com.nisum.offertransactionservice.client.ClientService
;
import
com.nisum.offertransactionservice.client.PromotionEngineFeignClient
;
import
com.nisum.offertransactionservice.client.StoreProducerFeignClient
;
import
com.nisum.offertransactionservice.converter.OfferConvertion
;
import
com.nisum.offertransactionservice.dao.OfferLookupRepo
;
import
com.nisum.offertransactionservice.dao.OfferMetaDataRepo
;
...
...
@@ -34,9 +34,6 @@ public class OfferCallingPEService {
@Autowired
private
OfferLookupRepo
offerLookupRepo
;
@Autowired
private
ClientService
clientService
;
@Autowired
private
OfferMetaDataRepo
offerMetaDataRepo
;
...
...
src/test/java/com/nisum/offertransactionservice/client/ClientServiceTest.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
client
;
import
com.nisum.offertransactionservice.config.OfferTransactionConfig
;
import
com.nisum.offertransactionservice.dto.Item
;
import
com.nisum.offertransactionservice.dto.PERequest
;
import
com.nisum.offertransactionservice.dto.PEResponse
;
import
org.junit.jupiter.api.Assertions
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.MockitoAnnotations
;
import
org.springframework.web.reactive.function.client.WebClient
;
import
reactor.core.publisher.Mono
;
import
java.util.ArrayList
;
import
java.util.List
;
public
class
ClientServiceTest
{
@InjectMocks
ClientService
clientService
;
@Mock
private
WebClient
webClientMock
;
@Mock
private
WebClient
.
RequestHeadersSpec
requestHeadersMock
;
@Mock
private
WebClient
.
RequestBodySpec
requestBodyMock
;
@Mock
private
WebClient
.
RequestBodyUriSpec
requestBodyUriMock
;
@Mock
private
WebClient
.
ResponseSpec
responseMock
;
@Mock
OfferTransactionConfig
offerTransactionConfig
;
@BeforeEach
public
void
setUp
()
throws
Exception
{
MockitoAnnotations
.
initMocks
(
this
);
}
@Test
void
getStringMonoTest
(){
String
uuid
=
"86fd4146-0540-405b-b621-a95f4ccdfa0d"
;
//when(offerTransactionConfig.getPeBaseUrl()).thenReturn("http://localhost:8089");
//when(offerTransactionConfig.getSpBaseUrl()).thenReturn("http://localhost:8081");
// when(webClientMock.post()).thenReturn(requestBodyUriMock);
// when(requestBodyUriMock.uri("/store/producer")).thenReturn(requestBodyMock);
// when(requestBodyMock.bodyValue(Mono.just(uuid))).thenReturn(requestHeadersMock);
// when(requestHeadersMock.retrieve()).thenReturn(responseMock);
// when(responseMock.bodyToMono(String.class)).thenReturn(Mono.just(uuid));
Mono
<
String
>
stringMono
=
clientService
.
getStringMono
(
uuid
);
Assertions
.
assertNotNull
(
stringMono
);
}
private
PERequest
getPEReq
()
{
PERequest
peRequest
=
new
PERequest
();
peRequest
.
setHhId
(
123L
);
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
);
peRequest
.
setItemList
(
itemList
);
return
peRequest
;
}
private
PEResponse
getPeResponse
()
{
PEResponse
peResponse
=
new
PEResponse
();
peResponse
.
setHhid
(
123L
);
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
;
}
}
//
package com.nisum.offertransactionservice.client;
//
//
//
import com.nisum.offertransactionservice.config.OfferTransactionConfig;
//
import com.nisum.offertransactionservice.dto.Item;
//
import com.nisum.offertransactionservice.dto.PERequest;
//
import com.nisum.offertransactionservice.dto.PEResponse;
//
import org.junit.jupiter.api.Assertions;
//
import org.junit.jupiter.api.BeforeEach;
//
import org.junit.jupiter.api.Test;
//
import org.mockito.InjectMocks;
//
import org.mockito.Mock;
//
import org.mockito.MockitoAnnotations;
//
import org.springframework.web.reactive.function.client.WebClient;
//
import reactor.core.publisher.Mono;
//
//
import java.util.ArrayList;
//
import java.util.List;
//
//
public class ClientServiceTest {
//
//
//
@InjectMocks
//
ClientService clientService;
//
//
@Mock
//
private WebClient webClientMock;
//
//
@Mock
//
private WebClient.RequestHeadersSpec requestHeadersMock;
//
//
@Mock
//
private WebClient.RequestBodySpec requestBodyMock;
//
//
@Mock
//
private WebClient.RequestBodyUriSpec requestBodyUriMock;
//
//
@Mock
//
private WebClient.ResponseSpec responseMock;
//
//
@Mock
//
OfferTransactionConfig offerTransactionConfig;
//
//
//
@BeforeEach
//
public void setUp() throws Exception {
//
MockitoAnnotations.initMocks(this);
//
}
//
//
@Test
//
void getStringMonoTest(){
//
String uuid = "86fd4146-0540-405b-b621-a95f4ccdfa0d";
//
//when(offerTransactionConfig.getPeBaseUrl()).thenReturn("http://localhost:8089");
//
//when(offerTransactionConfig.getSpBaseUrl()).thenReturn("http://localhost:8081");
//
//
when(webClientMock.post()).thenReturn(requestBodyUriMock);
//
//
when(requestBodyUriMock.uri("/store/producer")).thenReturn(requestBodyMock);
//
//
when(requestBodyMock.bodyValue(Mono.just(uuid))).thenReturn(requestHeadersMock);
//
//
when(requestHeadersMock.retrieve()).thenReturn(responseMock);
//
//
when(responseMock.bodyToMono(String.class)).thenReturn(Mono.just(uuid));
//
Mono<String> stringMono = clientService.getStringMono(uuid);
//
Assertions.assertNotNull(stringMono);
//
}
//
//
//
private PERequest getPEReq() {
//
PERequest peRequest = new PERequest();
//
peRequest.setHhId(123L);
//
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);
//
peRequest.setItemList(itemList);
//
return peRequest;
//
}
//
//
private PEResponse getPeResponse() {
//
PEResponse peResponse = new PEResponse();
//
peResponse.setHhid(123L);
//
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;
//
}
//
//
}
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
;
import
com.github.tomakehurst.wiremock.junit.WireMockRule
;
import
com.nisum.offertransactionservice.dto.*
;
import
com.nisum.offertransactionservice.model.OfferLookup
;
import
org.junit.jupiter.api.Assertions
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.api.extension.RegisterExtension
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.boot.test.web.client.TestRestTemplate
;
import
org.springframework.cloud.contract.wiremock.AutoConfigureWireMock
;
import
org.springframework.core.ParameterizedTypeReference
;
import
org.springframework.http.HttpMethod
;
import
org.springframework.http.RequestEntity
;
import
org.springframework.http.ResponseEntity
;
import
java.net.URI
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.stream.Collectors
;
import
static
com
.
github
.
tomakehurst
.
wiremock
.
client
.
WireMock
.*;
@SpringBootTest
(
webEnvironment
=
SpringBootTest
.
WebEnvironment
.
DEFINED_PORT
)
@AutoConfigureWireMock
public
class
OfferTransactionControllerIntegrationTest
extends
AbstractTestBase
{
@RegisterExtension
public
WireMockRule
wireMockRule
=
new
WireMockRule
(
7072
);
@Autowired
private
TestRestTemplate
testRestTemplate
;
@BeforeEach
public
void
setUp
()
{
mockForOfferTransactionCall
();
mockForEndOfSale
();
mockForEndOfTransaction
();
}
private
void
mockForOfferTransactionCall
()
{
mWireMockServer
.
stubFor
(
post
(
urlEqualTo
(
"/offerTransactionCall"
))
.
willReturn
(
aResponse
()
.
withStatus
(
200
)
.
withHeader
(
"Content-Type"
,
"application/json"
)
.
withBodyFile
(
"response.json"
)
));
}
private
void
mockForEndOfSale
()
{
mWireMockServer
.
stubFor
(
post
(
urlEqualTo
(
"/endOfSale"
))
.
willReturn
(
aResponse
()
.
withStatus
(
200
)
.
withHeader
(
"Content-Type"
,
"application/json"
)
.
withBodyFile
(
"endOfSale-response.json"
)
));
}
private
void
mockForEndOfTransaction
()
{
mWireMockServer
.
stubFor
(
post
(
urlEqualTo
(
"/endOfTransaction"
))
.
willReturn
(
aResponse
()
.
withStatus
(
200
)
.
withHeader
(
"Content-Type"
,
"application/json"
)
.
withBodyFile
(
"endOfTransaction-response.json"
)
));
}
@Test
public
void
getOfferTransactionResponseTest
()
{
URI
uri
=
URI
.
create
(
"http://localhost:7072/offerTransactionCall"
);
RequestEntity
requestEntity
=
new
RequestEntity
(
getOfferTransactionRequest
(),
HttpMethod
.
POST
,
uri
);
ResponseEntity
<
OfferTransactionResponse
>
responseEntity
=
testRestTemplate
.
exchange
(
"http://localhost:7072/offerTransactionCall"
,
HttpMethod
.
POST
,
requestEntity
,
new
ParameterizedTypeReference
<
OfferTransactionResponse
>(){}
);
OfferTransactionResponse
offerTransactionResponse
=
responseEntity
.
getBody
();
System
.
out
.
println
(
offerTransactionResponse
);
Assertions
.
assertNotNull
(
offerTransactionResponse
.
getTransactionId
());
}
@Test
public
void
endOfSaleTest
()
{
URI
uri
=
URI
.
create
(
"http://localhost:7072/endOfSale"
);
RequestEntity
requestEntity
=
new
RequestEntity
(
getEndOfSaleReq
(),
HttpMethod
.
POST
,
uri
);
ResponseEntity
<
EndOfSaleResponse
>
responseEntity
=
testRestTemplate
.
exchange
(
"http://localhost:7072/endOfSale"
,
HttpMethod
.
POST
,
requestEntity
,
new
ParameterizedTypeReference
<
EndOfSaleResponse
>(){}
);
EndOfSaleResponse
endOfSaleResponse
=
responseEntity
.
getBody
();
Assertions
.
assertNotNull
(
endOfSaleResponse
.
getUuId
());
}
@Test
public
void
endOfTransactionTest
()
{
URI
uri
=
URI
.
create
(
"http://localhost:7072/endOfTransaction"
);
String
uuid
=
"86fd4146-0540-405b-b621-a95f4ccdfa0d"
;
RequestEntity
requestEntity
=
new
RequestEntity
(
uuid
,
HttpMethod
.
POST
,
uri
);
ResponseEntity
<
String
>
responseEntity
=
testRestTemplate
.
exchange
(
"http://localhost:7072/endOfTransaction"
,
HttpMethod
.
POST
,
requestEntity
,
new
ParameterizedTypeReference
<
String
>(){}
);
String
endOfTransactionRes
=
responseEntity
.
getBody
();
Assertions
.
assertNotNull
(
endOfTransactionRes
);
}
private
EndOfSaleReq
getEndOfSaleReq
()
{
EndOfSaleReq
endOfSaleReq
=
new
EndOfSaleReq
();
endOfSaleReq
.
setOfferTransactionResponse
(
retOfferTransRes
());
endOfSaleReq
.
setOffers
(
returnOffers
());
return
endOfSaleReq
;
}
private
OfferTransactionResponse
retOfferTransRes
()
{
OfferTransactionResponse
offerTransactionResponse
=
new
OfferTransactionResponse
();
offerTransactionResponse
.
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
);
offerTransactionResponse
.
setDiscountedItemList
(
itemList
);
offerTransactionResponse
.
setTransactionId
(
"123456788899999998"
);
return
offerTransactionResponse
;
}
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
<>();
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
;
}
}
//package com.nisum.offertransactionservice.controller;
//
//import com.github.tomakehurst.wiremock.junit.WireMockRule;
//import com.nisum.offertransactionservice.config.FeignClientConfig;
//import com.nisum.offertransactionservice.dto.*;
//import com.nisum.offertransactionservice.model.OfferLookup;
//import org.junit.ClassRule;
//import org.junit.jupiter.api.Assertions;
//import org.junit.jupiter.api.BeforeEach;
//import org.junit.jupiter.api.Test;
//import org.junit.jupiter.api.extension.RegisterExtension;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.boot.test.context.SpringBootTest;
//import org.springframework.boot.test.web.client.TestRestTemplate;
//import org.springframework.cloud.contract.wiremock.AutoConfigureWireMock;
//import org.springframework.cloud.openfeign.EnableFeignClients;
//import org.springframework.cloud.openfeign.FeignClient;
//import org.springframework.core.ParameterizedTypeReference;
//import org.springframework.http.HttpMethod;
//import org.springframework.http.RequestEntity;
//import org.springframework.http.ResponseEntity;
//import org.springframework.web.bind.annotation.PostMapping;
//
//import java.net.URI;
//import java.util.ArrayList;
//import java.util.List;
//import java.util.stream.Collectors;
//
//import static com.github.tomakehurst.wiremock.client.WireMock.*;
//
//
//@SpringBootTest(webEnvironment= SpringBootTest.WebEnvironment.DEFINED_PORT)
//@AutoConfigureWireMock
//@EnableFeignClients(clients = OfferTransactionControllerIntegrationTest.PromotionEngineFeignClient.class)
//public class OfferTransactionControllerIntegrationTest{
//
// @RegisterExtension
// @ClassRule
// public WireMockRule wireMockRule = new WireMockRule(9090);
//
// @Autowired
// private TestRestTemplate testRestTemplate;
//
//
//
// @FeignClient(name = "${pe.application.name}", url="${pe.application.url}", configuration = FeignClientConfig.class)
// public interface PromotionEngineFeignClient {
//
// @PostMapping(value = "${endpoint.url.promotionEngineUrl}")
// ResponseEntity<PEResponse> callPEService(PERequest peRequest);
// }
//
// @Autowired
// PromotionEngineFeignClient feignClientService;
//
// @BeforeEach
// public void setUp() {
// mockForOfferTransactionCall();
// mockForEndOfSale();
// mockForEndOfTransaction();
// }
//
// private void mockForOfferTransactionCall() {
// wireMockRule.stubFor(post(urlEqualTo("/promotionEngine/calculateDiscount"))
// .willReturn(aResponse()
// .withStatus(200)
// .withHeader("Content-Type", "application/json")
// .withBodyFile("response.json")
// ));
// }
//
// private void mockForEndOfSale() {
// wireMockRule.stubFor(post(urlEqualTo("/endOfSale"))
// .willReturn(aResponse()
// .withStatus(200)
// .withHeader("Content-Type", "application/json")
// .withBodyFile("endOfSale-response.json")
// ));
// }
//
// private void mockForEndOfTransaction() {
// wireMockRule.stubFor(post(urlEqualTo("/endOfTransaction"))
// .willReturn(aResponse()
// .withStatus(200)
// .withHeader("Content-Type", "application/json")
// .withBodyFile("endOfTransaction-response.json")
// ));
// }
//
// @Test
// public void getOfferTransactionResponseTest() {
// URI uri = URI.create("http://localhost:7072/offer-service/offerTransactionCall");
// RequestEntity requestEntity = new RequestEntity(getOfferTransactionRequest(),HttpMethod.POST,uri);
//
// ResponseEntity<OfferTransactionResponse> responseEntity = testRestTemplate.exchange("http://localhost:7072/offer-service/offerTransactionCall", HttpMethod.POST,requestEntity,
// new ParameterizedTypeReference<OfferTransactionResponse>(){}
// );
// OfferTransactionResponse offerTransactionResponse = responseEntity.getBody();
// System.out.println(offerTransactionResponse);
// Assertions.assertNotNull(offerTransactionResponse.getTransactionId());
//
// }
//
// @Test
// public void endOfSaleTest() {
// URI uri = URI.create("http://localhost:7072/endOfSale");
// RequestEntity requestEntity = new RequestEntity(getEndOfSaleReq(),HttpMethod.POST,uri);
//
// ResponseEntity<EndOfSaleResponse> responseEntity = testRestTemplate.exchange("http://localhost:7072/endOfSale", HttpMethod.POST,requestEntity,
// new ParameterizedTypeReference<EndOfSaleResponse>(){}
// );
// EndOfSaleResponse endOfSaleResponse = responseEntity.getBody();
// Assertions.assertNotNull(endOfSaleResponse.getUuId());
//
// }
//
// @Test
// public void endOfTransactionTest() {
// URI uri = URI.create("http://localhost:7072/endOfTransaction");
// String uuid = "86fd4146-0540-405b-b621-a95f4ccdfa0d";
// RequestEntity requestEntity = new RequestEntity(uuid,HttpMethod.POST,uri);
//
// ResponseEntity<String> responseEntity = testRestTemplate.exchange("http://localhost:7072/endOfTransaction", HttpMethod.POST,requestEntity,
// new ParameterizedTypeReference<String>(){}
// );
// String endOfTransactionRes = responseEntity.getBody();
// Assertions.assertNotNull(endOfTransactionRes);
//
// }
//
// private EndOfSaleReq getEndOfSaleReq() {
// EndOfSaleReq endOfSaleReq = new EndOfSaleReq();
// endOfSaleReq.setOfferTransactionResponse(retOfferTransRes());
// endOfSaleReq.setOffers(returnOffers());
// return endOfSaleReq;
// }
//
//
// private OfferTransactionResponse retOfferTransRes() {
// OfferTransactionResponse offerTransactionResponse = new OfferTransactionResponse();
// offerTransactionResponse.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);
// offerTransactionResponse.setDiscountedItemList(itemList);
// offerTransactionResponse.setTransactionId("123456788899999998");
// return offerTransactionResponse;
// }
//
//
//
// 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<>();
// 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
;
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.model.OfferMeta
;
import
com.nisum.offertransactionservice.service.OfferCallingPEService
;
import
org.junit.jupiter.api.Test
;
import
org.junit.jupiter.params.ParameterizedTest
;
import
org.junit.jupiter.params.provider.ValueSource
;
import
org.mockito.ArgumentMatchers
;
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.context.annotation.Description
;
import
reactor.core.publisher.Mono
;
import
java.io.IOException
;
import
java.time.LocalDateTime
;
import
java.util.*
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertEquals
;
import
static
org
.
mockito
.
Mockito
.
when
;
@SpringBootTest
class
OfferTransactionControllerTest
{
@InjectMocks
@Autowired
private
OfferTransactionController
offerTransactionController
;
@Mock
private
OfferLookupRepo
offerLookupRepo
;
@Mock
private
OfferMetaDataRepo
offerMetaDataRepo
;
@Mock
private
EndOfSaleRepo
endOfSaleRepo
;
@Mock
private
ClientService
clientService
;
private
String
HH_ID_FOR_END_OF_SALE
=
"id01"
;
private
String
TRANSACTION_ID_FOR_END_OF_SALE
=
"tx01"
;
private
final
String
UU_ID_FOR_END_OF_TRANSACTION
=
"id01"
;
private
String
DISCOUNT_DESC
=
"10 percent"
;
@Mock
private
OfferCallingPEService
offerCallingPEService
;
@Description
(
"Component test for getOfferTransactionResponse method"
)
@Test
void
getOfferTransactionResponse
()
throws
InterruptedException
{
when
(
offerLookupRepo
.
findByHhId
(
ArgumentMatchers
.
any
(),
ArgumentMatchers
.
any
())).
thenReturn
(
getOffers
());
when
(
clientService
.
getPeResponseFlux
(
Mockito
.
any
(
PERequest
.
class
))).
thenReturn
(
getPeResponse
());
when
(
offerCallingPEService
.
getOfferMetaDto
(
ArgumentMatchers
.
any
())).
thenReturn
(
getOfferLookupDto
());
Mockito
.
doReturn
(
Optional
.
of
(
getOfferMeta
())).
when
(
offerMetaDataRepo
).
findByOfferIdAndOfferStatusIgnoreCase
(
Mockito
.
anyLong
(),
Mockito
.
anyString
());
OfferTransactionResponse
offerTransactionResponse
=
offerTransactionController
.
getOfferTransactionResponse
(
getOfferTransactionRequest
());
assertEquals
(
true
,
Objects
.
nonNull
(
offerTransactionResponse
.
getTransactionId
()));
}
@Description
(
"Component test for endOfSale method"
)
@Test
void
endOfSale
()
throws
IOException
{
when
(
endOfSaleRepo
.
save
(
Mockito
.
any
(
EndOfSaleEntity
.
class
))).
thenReturn
(
new
EndOfSaleEntity
());
assertEquals
(
true
,
Objects
.
nonNull
(
offerTransactionController
.
endOfSale
(
buildEndOfSaleReq
())));
}
@Description
(
"Component test for endOfTransaction method"
)
@ParameterizedTest
@ValueSource
(
strings
=
{
UU_ID_FOR_END_OF_TRANSACTION
})
void
endOfTransaction
(
String
uuId
)
{
when
(
clientService
.
getStringMono
(
Mockito
.
anyString
())).
thenReturn
(
getMonoOfString
());
assertEquals
(
true
,
Objects
.
nonNull
(
offerTransactionController
.
endOfTransaction
(
uuId
)));
}
private
List
<
OfferLookup
>
getOffers
()
{
OfferLookup
offerLookup1
=
new
OfferLookup
(
"123"
,
"12"
,
234L
,
"02"
,
"AND"
,
"BOGO"
);
OfferLookup
offerLookup2
=
new
OfferLookup
(
"1213"
,
"13"
,
234L
,
"02"
,
"OR"
,
"BXGY"
);
List
<
OfferLookup
>
offerLookups
=
new
ArrayList
<>();
offerLookups
.
add
(
offerLookup1
);
offerLookups
.
add
(
offerLookup2
);
return
offerLookups
;
}
private
OfferTransactionRequest
getOfferTransactionRequest
()
{
OfferTransactionRequest
offerTransactionRequest
=
new
OfferTransactionRequest
();
offerTransactionRequest
.
setHhId
(
"54321"
);
offerTransactionRequest
.
setItemList
(
getItemList
());
return
offerTransactionRequest
;
}
private
PEResponse
getPeResponse
()
{
PEResponse
peResponse
=
new
PEResponse
();
peResponse
.
setHhid
(
123L
);
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
(),
DISCOUNT_DESC
);
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
);
return
itemList
;
}
private
Mono
<
String
>
getMonoOfString
()
{
return
Mono
.
just
(
"MONO_TO_STRING"
);
}
private
OfferMeta
getOfferMeta
(){
OfferMeta
offerMetaDTO
=
new
OfferMeta
();
offerMetaDTO
.
setDiscount
(
"discount"
);
offerMetaDTO
.
setEligibility
(
"eligibility"
);
offerMetaDTO
.
setExpiryTime
(
LocalDateTime
.
of
(
2021
,
01
,
01
,
01
,
01
));
offerMetaDTO
.
setStartTime
(
LocalDateTime
.
of
(
2020
,
01
,
01
,
01
,
01
));
offerMetaDTO
.
setOfferDesc
(
"30 percent"
);
offerMetaDTO
.
setOfferId
(
1L
);
offerMetaDTO
.
setOfferStatus
(
"Active"
);
offerMetaDTO
.
setRcptTxt
(
"text"
);
offerMetaDTO
.
setOfferType
(
"aaa"
);
return
offerMetaDTO
;
}
private
List
<
OfferLookupDTO
>
getOfferLookupDto
(){
OfferLookupDTO
offerLookupDTO
=
new
OfferLookupDTO
();
offerLookupDTO
.
setId
(
"123"
);
offerLookupDTO
.
setIdType
(
"1234"
);
offerLookupDTO
.
setOfferId
(
1L
);
offerLookupDTO
.
setPreCondition
(
"And"
);
offerLookupDTO
.
setStoreId
(
"001"
);
offerLookupDTO
.
setTerminal
(
"001"
);
OfferMetaDTO
offerMetaDTO
=
new
OfferMetaDTO
();
offerMetaDTO
.
setDiscount
(
"discount"
);
offerMetaDTO
.
setEligibility
(
"eligibility"
);
offerMetaDTO
.
setExpiryTime
(
LocalDateTime
.
of
(
2021
,
01
,
01
,
01
,
01
));
offerMetaDTO
.
setStartTime
(
LocalDateTime
.
of
(
2020
,
01
,
01
,
01
,
01
));
offerMetaDTO
.
setOfferDesc
(
"30 percent"
);
offerMetaDTO
.
setOfferId
(
1L
);
offerMetaDTO
.
setOfferStatus
(
"Active"
);
offerMetaDTO
.
setRcptTxt
(
"text"
);
offerMetaDTO
.
setOfferType
(
"aaa"
);
offerLookupDTO
.
setOfferMetaDTO
(
offerMetaDTO
);
OfferLookupDTO
offerLookupDTO1
=
new
OfferLookupDTO
();
offerLookupDTO1
.
setId
(
"123"
);
offerLookupDTO1
.
setIdType
(
"1234"
);
offerLookupDTO1
.
setOfferId
(
1L
);
offerLookupDTO1
.
setPreCondition
(
"And"
);
offerLookupDTO1
.
setStoreId
(
"001"
);
offerLookupDTO1
.
setTerminal
(
"001"
);
OfferMetaDTO
offerMetaDTO1
=
new
OfferMetaDTO
();
offerMetaDTO1
.
setDiscount
(
"discount"
);
offerMetaDTO1
.
setEligibility
(
"eligibility"
);
offerMetaDTO1
.
setExpiryTime
(
LocalDateTime
.
of
(
2021
,
01
,
01
,
01
,
01
));
offerMetaDTO1
.
setStartTime
(
LocalDateTime
.
of
(
2020
,
01
,
01
,
01
,
01
));
offerMetaDTO1
.
setOfferDesc
(
"20 percent"
);
offerMetaDTO1
.
setOfferId
(
1L
);
offerMetaDTO1
.
setOfferStatus
(
"Active"
);
offerMetaDTO1
.
setRcptTxt
(
"text"
);
offerMetaDTO1
.
setOfferType
(
"aaa"
);
offerLookupDTO1
.
setOfferMetaDTO
(
offerMetaDTO
);
List
<
OfferLookupDTO
>
offerLookupDTOList
=
Arrays
.
asList
(
offerLookupDTO1
,
offerLookupDTO
);
return
offerLookupDTOList
;
}
}
\ No newline at end of file
//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.model.OfferMeta;
//import com.nisum.offertransactionservice.service.OfferCallingPEService;
//import org.junit.jupiter.api.Test;
//import org.junit.jupiter.params.ParameterizedTest;
//import org.junit.jupiter.params.provider.ValueSource;
//import org.mockito.ArgumentMatchers;
//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.context.annotation.Description;
//import reactor.core.publisher.Mono;
//
//import java.io.IOException;
//import java.time.LocalDateTime;
//import java.util.*;
//
//import static org.junit.jupiter.api.Assertions.assertEquals;
//import static org.mockito.Mockito.when;
//
//@SpringBootTest
//class OfferTransactionControllerTest {
//
// @InjectMocks
// @Autowired
// private OfferTransactionController offerTransactionController;
//
// @Mock
// private OfferLookupRepo offerLookupRepo;
//
// @Mock
// private OfferMetaDataRepo offerMetaDataRepo;
//
// @Mock
// private EndOfSaleRepo endOfSaleRepo;
//
// @Mock
// private ClientService clientService;
//
// private String HH_ID_FOR_END_OF_SALE = "id01";
//
// private String TRANSACTION_ID_FOR_END_OF_SALE = "tx01";
//
// private final String UU_ID_FOR_END_OF_TRANSACTION = "id01";
//
// private String DISCOUNT_DESC = "10 percent";
//
//
// @Mock
// private OfferCallingPEService offerCallingPEService;
//
// @Description("Component test for getOfferTransactionResponse method")
// @Test
// void getOfferTransactionResponse() throws InterruptedException {
// when(offerLookupRepo.findByHhId(ArgumentMatchers.any(),ArgumentMatchers.any())).thenReturn(getOffers());
// when(clientService.getPeResponseFlux(Mockito.any(PERequest.class))).thenReturn(getPeResponse());
// when(offerCallingPEService.getOfferMetaDto(ArgumentMatchers.any())).thenReturn(getOfferLookupDto());
// Mockito.doReturn(Optional.of(getOfferMeta())).when(offerMetaDataRepo).findByOfferIdAndOfferStatusIgnoreCase(Mockito.anyLong(), Mockito.anyString());
// OfferTransactionResponse offerTransactionResponse = offerTransactionController.getOfferTransactionResponse(getOfferTransactionRequest());
// assertEquals(true,Objects.nonNull(offerTransactionResponse.getTransactionId()));
// }
//
// @Description("Component test for endOfSale method")
// @Test
// void endOfSale() throws IOException {
// when(endOfSaleRepo.save(Mockito.any(EndOfSaleEntity.class))).thenReturn(new EndOfSaleEntity());
// assertEquals(true,Objects.nonNull(offerTransactionController.endOfSale(buildEndOfSaleReq())));
// }
//
// @Description("Component test for endOfTransaction method")
// @ParameterizedTest
// @ValueSource(strings = {UU_ID_FOR_END_OF_TRANSACTION})
// void endOfTransaction(String uuId) {
// when(clientService.getStringMono(Mockito.anyString())).thenReturn(getMonoOfString());
// assertEquals(true,Objects.nonNull(offerTransactionController.endOfTransaction(uuId)));
// }
//
// private List<OfferLookup> getOffers() {
// OfferLookup offerLookup1 = new OfferLookup("123", "12", 234L, "02", "AND", "BOGO");
// OfferLookup offerLookup2 = new OfferLookup("1213", "13", 234L, "02", "OR", "BXGY");
// List<OfferLookup> offerLookups = new ArrayList<>();
// offerLookups.add(offerLookup1);
// offerLookups.add(offerLookup2);
// return offerLookups;
// }
//
// private OfferTransactionRequest getOfferTransactionRequest() {
// OfferTransactionRequest offerTransactionRequest = new OfferTransactionRequest();
// offerTransactionRequest.setHhId("54321");
// offerTransactionRequest.setItemList(getItemList());
// return offerTransactionRequest;
// }
//
// private PEResponse getPeResponse() {
// PEResponse peResponse = new PEResponse();
// peResponse.setHhid(123L);
// 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(),DISCOUNT_DESC);
// 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);
// return itemList;
// }
// private Mono<String> getMonoOfString() {
// return Mono.just("MONO_TO_STRING");
// }
//
//
// private OfferMeta getOfferMeta(){
// OfferMeta offerMetaDTO = new OfferMeta();
// offerMetaDTO.setDiscount("discount");
// offerMetaDTO.setEligibility("eligibility");
// offerMetaDTO.setExpiryTime(LocalDateTime.of(2021,01,01,01,01));
// offerMetaDTO.setStartTime(LocalDateTime.of(2020,01,01,01,01));
// offerMetaDTO.setOfferDesc("30 percent");
// offerMetaDTO.setOfferId(1L);
// offerMetaDTO.setOfferStatus("Active");
// offerMetaDTO.setRcptTxt("text");
// offerMetaDTO.setOfferType("aaa");
// return offerMetaDTO;
// }
//
//
// private List<OfferLookupDTO> getOfferLookupDto(){
// OfferLookupDTO offerLookupDTO = new OfferLookupDTO();
// offerLookupDTO.setId("123");
// offerLookupDTO.setIdType("1234");
// offerLookupDTO.setOfferId(1L);
// offerLookupDTO.setPreCondition("And");
// offerLookupDTO.setStoreId("001");
// offerLookupDTO.setTerminal("001");
//
// OfferMetaDTO offerMetaDTO = new OfferMetaDTO();
// offerMetaDTO.setDiscount("discount");
// offerMetaDTO.setEligibility("eligibility");
// offerMetaDTO.setExpiryTime(LocalDateTime.of(2021,01,01,01,01));
// offerMetaDTO.setStartTime(LocalDateTime.of(2020,01,01,01,01));
// offerMetaDTO.setOfferDesc("30 percent");
// offerMetaDTO.setOfferId(1L);
// offerMetaDTO.setOfferStatus("Active");
// offerMetaDTO.setRcptTxt("text");
// offerMetaDTO.setOfferType("aaa");
//
// offerLookupDTO.setOfferMetaDTO(offerMetaDTO);
//
//
// OfferLookupDTO offerLookupDTO1 = new OfferLookupDTO();
// offerLookupDTO1.setId("123");
// offerLookupDTO1.setIdType("1234");
// offerLookupDTO1.setOfferId(1L);
// offerLookupDTO1.setPreCondition("And");
// offerLookupDTO1.setStoreId("001");
// offerLookupDTO1.setTerminal("001");
//
// OfferMetaDTO offerMetaDTO1 = new OfferMetaDTO();
// offerMetaDTO1.setDiscount("discount");
// offerMetaDTO1.setEligibility("eligibility");
// offerMetaDTO1.setExpiryTime(LocalDateTime.of(2021,01,01,01,01));
// offerMetaDTO1.setStartTime(LocalDateTime.of(2020,01,01,01,01));
// offerMetaDTO1.setOfferDesc("20 percent");
// offerMetaDTO1.setOfferId(1L);
// offerMetaDTO1.setOfferStatus("Active");
// offerMetaDTO1.setRcptTxt("text");
// offerMetaDTO1.setOfferType("aaa");
//
// offerLookupDTO1.setOfferMetaDTO(offerMetaDTO);
//
//
// List<OfferLookupDTO> offerLookupDTOList = Arrays.asList(offerLookupDTO1, offerLookupDTO);
// return offerLookupDTOList;
//
//
// }
//}
\ No newline at end of file
src/test/java/com/nisum/offertransactionservice/service/EndOfTransactionTest.java
View file @
86a9dc0a
package
com
.
nisum
.
offertransactionservice
.
service
;
import
com.nisum.offertransactionservice.client.
ClientService
;
import
com.nisum.offertransactionservice.client.
StoreProducerFeignClient
;
import
com.nisum.offertransactionservice.genericexception.GlobalApiGenericException
;
import
org.junit.jupiter.api.BeforeEach
;
import
org.junit.jupiter.api.DisplayName
;
...
...
@@ -11,10 +11,11 @@ import org.mockito.ArgumentMatchers;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.MockitoAnnotations
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
reactor.core.publisher.Mono
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertNotNull
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.
assertThrows
;
import
static
org
.
junit
.
jupiter
.
api
.
Assertions
.*;
import
static
org
.
mockito
.
Mockito
.
when
;
public
class
EndOfTransactionTest
{
...
...
@@ -23,7 +24,8 @@ public class EndOfTransactionTest {
private
EndOfTransactionService
endOfTransactionService
;
@Mock
private
ClientService
clientService
;
@Autowired
private
StoreProducerFeignClient
storeProducerFeignClient
;
@BeforeEach
public
void
setUp
()
throws
Exception
{
...
...
@@ -35,10 +37,11 @@ public class EndOfTransactionTest {
@ParameterizedTest
@ValueSource
(
strings
={
"86fd4146-0540-405b-b621-a95f4ccdfa0d"
})
public
void
endOfTransactionTest
(
String
uuid
)
{
when
(
clientService
.
getStringMono
(
ArgumentMatchers
.
any
())).
thenReturn
(
Mono
.
just
(
"test"
));
assertNotNull
(
endOfTransactionService
.
endOfTransaction
(
uuid
));
ResponseEntity
<
String
>
responseEntity
=
ResponseEntity
.
ok
(
"test"
);
when
(
storeProducerFeignClient
.
callStoreProducer
(
ArgumentMatchers
.
any
())).
thenReturn
(
responseEntity
);
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
;
import
com.nisum.offertransactionservice.client.
ClientService
;
import
com.nisum.offertransactionservice.client.
PromotionEngineFeignClient
;
import
com.nisum.offertransactionservice.dao.OfferLookupRepo
;
import
com.nisum.offertransactionservice.dao.OfferMetaDataRepo
;
import
com.nisum.offertransactionservice.dto.*
;
...
...
@@ -17,6 +17,8 @@ import org.mockito.ArgumentMatchers;
import
org.mockito.InjectMocks
;
import
org.mockito.Mock
;
import
org.mockito.MockitoAnnotations
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.http.ResponseEntity
;
import
java.time.LocalDateTime
;
import
java.util.ArrayList
;
...
...
@@ -42,21 +44,21 @@ public class OfferServiceTest {
@Mock
private
OfferMetaDataRepo
offerMetaDataRepo
;
@Mock
private
PromotionEngineFeignClient
feignClientService
;
@BeforeEach
public
void
setUp
()
throws
Exception
{
MockitoAnnotations
.
initMocks
(
this
);
}
@Mock
ClientService
clientService
;
@DisplayName
(
"testing the getDiscountedItemList method"
)
@ParameterizedTest
@MethodSource
(
"getOfferTransactionRequestSource"
)
public
void
testGetDiscountedItemList
(
OfferTransactionRequest
offerTransactionRequest
)
{
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
());
OfferTransactionResponse
offerTransactionResponse
=
offerCallingPEService
.
getDiscountedItemList
(
offerTransactionRequest
);
assertNotNull
(
offerTransactionResponse
,
()->
"response should not be null"
);
...
...
@@ -95,7 +97,7 @@ public class OfferServiceTest {
return
offerTransactionResponse
;
}
private
PEResponse
getPeResponse
()
{
private
ResponseEntity
<
PEResponse
>
getPeResponse
()
{
PEResponse
peResponse
=
new
PEResponse
();
peResponse
.
setHhid
(
123L
);
List
<
Item
>
itemList
=
new
ArrayList
<>();
...
...
@@ -104,7 +106,7 @@ public class OfferServiceTest {
itemList
.
add
(
item1
);
itemList
.
add
(
item2
);
peResponse
.
setDiscountedItemList
(
itemList
);
return
peResponse
;
return
ResponseEntity
.
ok
(
peResponse
)
;
}
private
PERequest
getPEReq
()
{
...
...
src/test/resources/application.properties
View file @
86a9dc0a
spring.datasource.url
=
jdbc:postgresql://127.0.0.1:5432/storedb
spring.datasource.username
=
postgres
spring.datasource.password
=
dbpwd
server.port
=
7072
spring.application.name
=
ots
# PE Application properties
pe.application.name
=
pe
pe.application.url
=
http://localhost:9090
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.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