Skip to content

Commit a81b496

Browse files
committed
Added tests
1 parent 8f4921b commit a81b496

File tree

11 files changed

+204
-12
lines changed

11 files changed

+204
-12
lines changed

Dockerfile

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ FROM frolvlad/alpine-oraclejdk8:slim
22
VOLUME /tmp
33
ADD build/libs/driver-query-0.0.1.jar app.jar
44
ENV JAVA_OPTS=""
5+
ENV MONGO_HOST="mongo"
56
ENV MONGO_PORT="27017"
67
ENV RABBIT_HOST="rabbitmq"
78
EXPOSE 8080
8-
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]
9+
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

build.gradle

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ dependencies {
6161
testCompile('org.springframework.boot:spring-boot-starter-test')
6262
testCompile('org.codehaus.groovy:groovy-all:2.4.6')
6363
testCompile("org.springframework.cloud:spring-cloud-starter-contract-verifier:${verifierVersion}")
64+
testCompile("org.springframework.cloud:spring-cloud-contract-spec:${verifierVersion}")
6465
testCompile("org.springframework.boot:spring-boot-starter-test:${springBootVersion}")
6566
}
6667

@@ -70,6 +71,12 @@ dependencyManagement {
7071
}
7172
}
7273

74+
contracts {
75+
baseClassMappings {
76+
baseClassMapping(".*driverquery.*", "org.aitesting.microservices.driverquery.provider.DriverQueryContractBase")
77+
}
78+
}
79+
7380
checkstyle {
7481
toolVersion = "8.7"
7582
configFile = new File(rootDir, "checkstyle.xml")

docker-compose-dev.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ services:
1515
- "5672:5672"
1616
- "15672:15672"
1717
driver-cmd:
18-
image: aista/tdriver-cmd
18+
image: ../driver-cmd/
1919
container_name: 'driver-cmd'
2020
environment:
2121
- RABBIT_HOST=rabbitmq

docker-compose.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,17 @@ services:
33

44
mongo:
55
image: 'mongo:3.4.1'
6-
container_name: 'mongo'
76
ports:
87
- '27017:27017'
98
volumes:
109
- 'mongo:/data/db'
1110
rabbitmq:
1211
image: rabbitmq:management
13-
container_name: 'rabbitmq'
1412
ports:
1513
- "5672:5672"
1614
- "15672:15672"
1715
driver-cmd:
18-
image: aista/driver-cmd
16+
build: ../driver-cmd/
1917
container_name: 'driver-cmd'
2018
environment:
2119
- RABBIT_HOST=rabbitmq
@@ -39,4 +37,4 @@ services:
3937
- driver-cmd
4038

4139
volumes:
42-
mongo:
40+
mongo:

src/main/java/org/aitesting/microservices/driver/query/service/controllers/DriverController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public ResponseEntity<List<Driver>> getDrivers() {
3030
return new ResponseEntity<>(driverRepository.findAll(), HttpStatus.OK);
3131
}
3232

33-
@GetMapping("drivers/{id}")
33+
@GetMapping("driver/{id}")
3434
public ResponseEntity<Driver> getDriver(@PathVariable UUID id) {
3535
logger.info(String.format("Request for a driver with id: %s", id));
3636
return new ResponseEntity<>(driverRepository.findOne(id), HttpStatus.OK);
Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
package org.aitesting.microservices.driverquery;
22

3+
import org.aitesting.microservices.driver.query.DriverQueryApplication;
34
import org.junit.Test;
45
import org.junit.runner.RunWith;
56
import org.springframework.boot.test.context.SpringBootTest;
7+
import org.springframework.context.annotation.Profile;
68
import org.springframework.test.context.junit4.SpringRunner;
79

810
@RunWith(SpringRunner.class)
9-
@SpringBootTest
11+
@Profile("test")
12+
@SpringBootTest(classes = DriverQueryApplication.class)
1013
public class DriverQueryApplicationTests {
1114

12-
@Test
13-
public void contextLoads() {
14-
}
15-
15+
@Test
16+
public void contextLoads() {
17+
}
1618
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package org.aitesting.microservices.driverquery.configurations;
2+
3+
import java.util.UUID;
4+
5+
public class TestConstants {
6+
public static final UUID id1 = UUID.fromString("1f13bafe-9236-4edf-ac47-bf2f1d3caec6");
7+
public static final String fname1 = "Jason";
8+
public static final String lname1 = "Blossoms";
9+
public static final String address1 = "1457 Maple Street";
10+
public static final String email1 = "jasonblossoms@email.com";
11+
public static final String phone1 = "5437685380";
12+
public static final String license1 = "124D-FEW-CVD-F342";
13+
14+
public static final UUID id2 = UUID.fromString("1f13bafe-9236-4edf-ac47-bf2f1d3caec6");
15+
public static final String fname2 = "Veronica";
16+
public static final String lname2 = "Lodge";
17+
public static final String address2 = "1345 Eastwood";
18+
public static final String email2 = "vlodge@email.com";
19+
public static final String phone2 = "4642785563";
20+
public static final String license2 = "134D-FE5E-CV34D-F3442";
21+
22+
}
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package org.aitesting.microservices.driverquery.provider;
2+
3+
import static org.aitesting.microservices.driverquery.configurations.TestConstants.*;
4+
5+
import io.restassured.module.mockmvc.RestAssuredMockMvc;
6+
import org.aitesting.microservices.driver.query.DriverQueryApplication;
7+
import org.aitesting.microservices.driver.query.domain.models.Driver;
8+
import org.aitesting.microservices.driver.query.service.repositories.DriverRepository;
9+
import org.junit.After;
10+
import org.junit.Before;
11+
import org.junit.runner.RunWith;
12+
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.boot.test.context.SpringBootTest;
14+
import org.springframework.context.annotation.Profile;
15+
import org.springframework.test.context.junit4.SpringRunner;
16+
import org.springframework.web.context.WebApplicationContext;
17+
18+
@RunWith(SpringRunner.class)
19+
@Profile("test")
20+
@SpringBootTest(classes = DriverQueryApplication.class)
21+
public abstract class DriverQueryContractBase {
22+
23+
@Autowired
24+
private WebApplicationContext webApplicationContext;
25+
26+
@Autowired
27+
DriverRepository driverRepository;
28+
29+
@Before
30+
public void setUp() {
31+
RestAssuredMockMvc.webAppContextSetup(webApplicationContext);
32+
driverRepository.deleteAll();
33+
Driver driverOne = new Driver(id1, fname1, lname1, address1, email1, phone1, license1);
34+
Driver driverTwo = new Driver(id2, fname2, lname2, address2, email2, phone2, license2);
35+
driverRepository.save(driverOne);
36+
driverRepository.save(driverTwo);
37+
}
38+
39+
@After
40+
public void cleanUp() {
41+
driverRepository.deleteAll();
42+
}
43+
}
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
package org.aitesting.microservices.driverquery.unit;
2+
3+
import static org.mockito.Mockito.*;
4+
5+
import java.util.UUID;
6+
import org.aitesting.microservices.driver.common.events.DriverAvailabilityChangedEvent;
7+
import org.aitesting.microservices.driver.common.events.DriverCreatedEvent;
8+
import org.aitesting.microservices.driver.common.events.DriverDeletedEvent;
9+
import org.aitesting.microservices.driver.query.domain.eventhandlers.DriverEventHandler;
10+
import org.aitesting.microservices.driver.query.domain.models.Driver;
11+
import org.aitesting.microservices.driver.query.service.repositories.DriverRepository;
12+
import org.junit.Before;
13+
import org.junit.Test;
14+
import org.junit.runner.RunWith;
15+
import org.mockito.InjectMocks;
16+
import org.mockito.Mock;
17+
import org.mockito.runners.MockitoJUnitRunner;
18+
19+
@RunWith(MockitoJUnitRunner.class)
20+
public class DriverEventHandlerUnitTests {
21+
22+
@InjectMocks
23+
private DriverEventHandler driverEventHandler = new DriverEventHandler();
24+
25+
@Mock
26+
private static DriverRepository driverRepository;
27+
28+
@Mock
29+
private static DriverCreatedEvent driverCreatedEvent;
30+
31+
@Mock
32+
private static DriverDeletedEvent driverDeletedEvent;
33+
34+
@Mock
35+
private static DriverAvailabilityChangedEvent driverAvailabilityChangedEvent;
36+
37+
@Mock
38+
private static Driver driver;
39+
40+
@Before
41+
public void setUp() {
42+
when(driverRepository.findOne(any(UUID.class))).thenReturn(driver);
43+
}
44+
45+
@Test
46+
public void onDriverCreatedEvent_SaveIsCalled() {
47+
//arrange
48+
49+
//act
50+
driverEventHandler.on(driverCreatedEvent);
51+
52+
//assert
53+
verify(driverRepository, times(1)).save(any(Driver.class));
54+
}
55+
56+
@Test
57+
public void onDriverDeletedEvent_DeleteIsCalled() {
58+
//arrange
59+
60+
//act
61+
driverEventHandler.on(driverDeletedEvent);
62+
63+
//assert
64+
verify(driverRepository, times(1)).delete(any(UUID.class));
65+
}
66+
67+
@Test
68+
public void onDriverAvailabilityChangedEvent_FindOneIsCalled() {
69+
//arrange
70+
71+
//act
72+
driverEventHandler.on(driverAvailabilityChangedEvent);
73+
74+
//assert
75+
verify(driverRepository, times(1)).findOne(any(UUID.class));
76+
}
77+
78+
@Test
79+
public void onDriverAvailabilityChangedEvent_SaveIsCalled() {
80+
//arrange
81+
82+
//act
83+
driverEventHandler.on(driverAvailabilityChangedEvent);
84+
85+
//assert
86+
verify(driverRepository, times(1)).save(any(Driver.class));
87+
}
88+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
package driverquery
2+
3+
import org.springframework.cloud.contract.spec.Contract
4+
5+
[
6+
Contract.make {
7+
description("When GET request for api/v1/drivers should get all drivers and 200 response")
8+
request {
9+
method 'GET'
10+
url "/api/v1/drivers"
11+
}
12+
response {
13+
status 200
14+
}
15+
}
16+
]

0 commit comments

Comments
 (0)