Skip to content

Commit 9afc94f

Browse files
committed
Merge branch 'conflictvisualizer-api-integration' into Feature/configuration-page
2 parents a5e4820 + 6ffbd81 commit 9afc94f

File tree

55 files changed

+245
-55
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

55 files changed

+245
-55
lines changed

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ docker compose up --build -d
133133

134134
**ConflictMonitor Configuration Scripts**
135135

136-
A set of scripts and data dumps exists in the [./resources/mongo_scripts](./resources/mongo_scripts) and [./resources/mongodumps](./resources/mongodumps) folders, see the readme in that location for more information.
136+
A set of scripts and data dumps exists in the [./resources/mongo_scripts](./resources/mongo_scripts) and [./resources/mongodumps](./resources/mongodumps) folders, see the included [README](./resources/mongo_scripts/README.md) for more information.
137137

138138
#### MongoDB
139139

resources/mongo_scripts/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# Mongo Scripts
2+
3+
This directory contains MongoDB configuration scripts, used in the docker-compose-intersection.yml mongodb_container service, as well as the docker-compose-mongo.yml cvmanager_mongo_setup service. These scripts set up indexes (normal and TTL), volume sizes, and initial configuration of the database.
4+
5+
## jpo-utils
6+
7+
These are expected to be phased out and replaced by the [jpo-utils](https://github.com/usdot-jpo-ode/jpo-utils) repository, which contains more generic and configurable scripts for setting up and configuration a mongodb instance.

resources/mongo_scripts/b_create_indexes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -397,7 +397,7 @@ do {
397397
sleep(retryMilliseconds)
398398
}
399399
} catch (err) {
400-
console.log('Error while setting up TTL indexs in collections')
400+
console.log('Error while setting up TTL indexes in collections')
401401
console.log(rs.status())
402402
console.error(err)
403403
sleep(retryMilliseconds)

resources/mongo_scripts/manage_volume.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// Mongo Data Managment Script
1+
// Mongo Data Management Script
22

33
// Features
44
// Automatically Logs Collection Sizes
@@ -35,7 +35,6 @@ const CM_MONGO_ROOT_PASSWORD = process.env.MONGO_INITDB_ROOT_PASSWORD || 'root'
3535
const MS_PER_HOUR = 60 * 60 * 1000
3636
const BYTE_TO_GB = 1024 * 1024 * 1024
3737
const DB_TARGET_SIZE_BYTES = CM_DATABASE_SIZE_GB * CM_DATABASE_SIZE_TARGET_PERCENT * BYTE_TO_GB
38-
const DB_DELETE_SIZE_BYETS = CM_DATABASE_SIZE_GB * CM_DATABASE_DELETE_THRESHOLD_PERCENT * BYTE_TO_GB
3938

4039
print('Managing Mongo Data Volumes')
4140

sample.env

+15-18
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ COMPOSE_PROFILES=basic,webapp,intersection
99
DOCKER_HOST_IP=
1010

1111
WEBAPP_HOST_IP=${DOCKER_HOST_IP}
12+
# Note if using KEYCLOAK_DOMAIN for the docker-compose-webapp-deployment.yml file you will need to include http:// or https://
1213
KEYCLOAK_DOMAIN=cvmanager.auth.com
1314
KC_HOST_IP=${DOCKER_HOST_IP}
1415
WEBAPP_DOMAIN=cvmanager.local.com
@@ -41,8 +42,6 @@ ENABLE_WZDX_FEATURES='true' # 'false' to disable
4142
# - Keycloak instance for user authentication and authorization of webapp and api requests
4243

4344
#### ---- cvmanager_keycloak
44-
KC_HOST_IP=${DOCKER_HOST_IP}
45-
4645
# Keycloak authentication credentials
4746
KEYCLOAK_ADMIN=admin
4847
KEYCLOAK_ADMIN_PASSWORD=admin
@@ -52,8 +51,6 @@ KEYCLOAK_REALM=cvmanager
5251
KEYCLOAK_API_CLIENT_ID=cvmanager-api
5352
KEYCLOAK_API_CLIENT_SECRET_KEY=w8zpoArUwIVN6TSDY5WQgX9TlVAgH9OF
5453
KEYCLOAK_LOGIN_THEME_NAME=sample_theme
55-
# Note if using KEYCLOAK_DOMAIN for the docker-compose-webapp-deployment.yml file you will need to include http:// or https://
56-
KEYCLOAK_DOMAIN=cvmanager.auth.com
5754
KEYCLOAK_KEYSTORE_PASSWORD=password
5855

5956
# GCP OAuth2.0 client ID for SSO authentication in keycloak - if not specified the google SSO will not be functional
@@ -270,29 +267,29 @@ GEO_TTL_DURATION=90
270267
#### ---- jpo_count_metric
271268

272269
# Count Metric Addon:
273-
ENABLE_EMAILER = 'True'
270+
ENABLE_EMAILER='True'
274271

275272
# If ENABLE_EMAILER is 'True', set the following environment variables
276-
DEPLOYMENT_TITLE = 'JPO-ODE'
273+
DEPLOYMENT_TITLE='JPO-ODE'
277274

278275
# SMTP REQUIRED VARIABLES
279-
SMTP_SERVER_IP = ''
280-
SMTP_USERNAME = ''
281-
SMTP_PASSWORD = ''
282-
SMTP_EMAIL = ''
276+
SMTP_SERVER_IP=''
277+
SMTP_USERNAME=''
278+
SMTP_PASSWORD=''
279+
SMTP_EMAIL=''
283280

284281
GCP_PROJECT_ID=
285282

286283
# If ENABLE_EMAILER is 'False', set the following environment variables
287-
COUNT_MESSAGE_TYPES = 'bsm'
288-
ODE_KAFKA_BROKERS = ${DOCKER_HOST_IP}:9092
284+
COUNT_MESSAGE_TYPES='bsm'
285+
ODE_KAFKA_BROKERS=${DOCKER_HOST_IP}:9092
289286

290287
# EITHER "MONGODB" or "BIGQUERY"
291-
COUNT_DESTINATION_DB = 'MONGODB'
288+
COUNT_DESTINATION_DB='MONGODB'
292289

293290
# MONGODB REQUIRED VARIABLES
294-
INPUT_COUNTS_MONGO_COLLECTION_NAME = ''
295-
OUTPUT_COUNTS_MONGO_COLLECTION_NAME = ''
291+
INPUT_COUNTS_MONGO_COLLECTION_NAME=''
292+
OUTPUT_COUNTS_MONGO_COLLECTION_NAME=''
296293

297294
KAFKA_BIGQUERY_TABLENAME=
298295

@@ -405,11 +402,11 @@ OBU_OTA_BLOB_STORAGE_BUCKET=
405402
OBU_OTA_BLOB_STORAGE_PATH=
406403

407404
# Nginx basic auth username and password
408-
OTA_USERNAME = "admin"
409-
OTA_PASSWORD = "admin"
405+
OTA_USERNAME="admin"
406+
OTA_PASSWORD="admin"
410407

411408
# Max number of successful firmware upgrades to keep in the database per device SN
412-
MAX_COUNT = 10
409+
MAX_COUNT=10
413410

414411
# Nginx encryption options: "plain", "ssl"
415412
# Note that this just changes the config file attached as a volume to the Nginx container

services/intersection-api/api/pom.xml

+12
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,18 @@
237237
<artifactId>systems-common</artifactId>
238238
<version>2.0</version>
239239
</dependency>
240+
<dependency>
241+
<groupId>de.flapdoodle.embed</groupId>
242+
<artifactId>de.flapdoodle.embed.mongo</artifactId>
243+
<version>4.18.1</version>
244+
<scope>test</scope>
245+
</dependency>
246+
<dependency>
247+
<groupId>io.zonky.test</groupId>
248+
<artifactId>embedded-database-spring-test</artifactId>
249+
<version>2.5.0</version>
250+
<scope>test</scope>
251+
</dependency>
240252
</dependencies>
241253
<build>
242254
<finalName>${project.artifactId}</finalName>

services/intersection-api/api/src/main/java/us/dot/its/jpo/ode/api/ConflictApiApplication.java

-10
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
11
package us.dot.its.jpo.ode.api;
22

3-
import org.springframework.beans.factory.annotation.Autowired;
43
import org.springframework.boot.SpringApplication;
54
import org.springframework.boot.autoconfigure.SpringBootApplication;
65
import org.springframework.boot.builder.SpringApplicationBuilder;
76
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
87

9-
import us.dot.its.jpo.ode.api.asn1.DecoderManager;
10-
import us.dot.its.jpo.ode.api.services.PostgresService;
11-
128
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
139
import org.springframework.context.annotation.ComponentScan;
1410
import org.springframework.scheduling.annotation.EnableScheduling;
@@ -19,12 +15,6 @@
1915
@ComponentScan(basePackages = { "us.dot.its.jpo.ode.api", "us.dot.its.jpo.geojsonconverter.validator" })
2016
public class ConflictApiApplication extends SpringBootServletInitializer {
2117

22-
@Autowired
23-
DecoderManager manager;
24-
25-
@Autowired
26-
PostgresService service;
27-
2818
@Override
2919
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
3020
return builder.sources(ConflictApiApplication.class);

services/intersection-api/api/src/main/java/us/dot/its/jpo/ode/api/asn1/BsmDecoder.java

-5
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ public DecodedMessage decode(EncodedMessage message) {
4949

5050
// Send String through ASN.1 Decoder to get Decoded XML Data
5151
String decodedXml = DecoderManager.decodeXmlWithAcm(xml);
52-
// String decodedXml = mockDecodeXmlWithAcm(xml);
5352

5453
// Convert to Ode Json
5554
OdeBsmData bsm = getAsOdeJson(decodedXml);
@@ -122,8 +121,4 @@ public OdeBsmData getAsOdeJson(String consumedData) throws XmlUtilsException {
122121
return new OdeBsmData(metadata, payload);
123122
}
124123

125-
public String mockDecodeXmlWithAcm(String xmlMessage){
126-
return "<?xml version=\"1.0\"?><OdeAsn1Data><metadata><bsmSource>RV</bsmSource><logFileName/><recordType>bsmTx</recordType><securityResultCode>success</securityResultCode><receivedMessageDetails><locationData><latitude/><longitude/><elevation/><speed/><heading/></locationData><rxSource>RV</rxSource></receivedMessageDetails><encodings><encodings><elementName>unsecuredData</elementName><elementType>MessageFrame</elementType><encodingRule>UPER</encodingRule></encodings></encodings><payloadType>us.dot.its.jpo.ode.model.OdeAsn1Payload</payloadType><serialId><streamId>8829c539-e684-40b7-a786-692acd3f897a</streamId><bundleSize>1</bundleSize><bundleId>0</bundleId><recordId>0</recordId><serialNumber>0</serialNumber></serialId><odeReceivedAt>2024-05-08T20:47:53.830130272Z</odeReceivedAt><schemaVersion>6</schemaVersion><maxDurationTime>0</maxDurationTime><recordGeneratedAt/><recordGeneratedBy/><sanitized>false</sanitized><odePacketID/><odeTimStartDateTime/><originIp/></metadata><payload><dataType>MessageFrame</dataType><data><MessageFrame><messageId>20</messageId><value><BasicSafetyMessage><coreData><msgCnt>18</msgCnt><id>B42DE51F</id><secMark>2998</secMark><lat>0</lat><long>0</long><elev>0</elev><accuracy><semiMajor>0</semiMajor><semiMinor>0</semiMinor><orientation>8100</orientation></accuracy><transmission><forwardGears/></transmission><speed>1315</speed><heading>6448</heading><angle>-1</angle><accelSet><long>0</long><lat>0</lat><vert>50</vert><yaw>0</yaw></accelSet><brakes><wheelBrakes>00000</wheelBrakes><traction><on/></traction><abs><on/></abs><scs><on/></scs><brakeBoost><unavailable/></brakeBoost><auxBrakes><unavailable/></auxBrakes></brakes><size><width>250</width><length>590</length></size></coreData><partII><BSMpartIIExtension><partII-Id>0</partII-Id><partII-Value><VehicleSafetyExtensions><pathHistory><crumbData><PathHistoryPoint><latOffset>-795</latOffset><lonOffset>2109</lonOffset><elevationOffset>0</elevationOffset><timeOffset>62789</timeOffset></PathHistoryPoint></crumbData></pathHistory><pathPrediction><radiusOfCurve>32767</radiusOfCurve><confidence>180</confidence></pathPrediction></VehicleSafetyExtensions></partII-Value></BSMpartIIExtension><BSMpartIIExtension><partII-Id>2</partII-Id><partII-Value><SupplementalVehicleExtensions><classification>0</classification><classDetails><keyType>0</keyType><hpmsType><none/></hpmsType></classDetails><vehicleData/><weatherReport><isRaining><error/></isRaining><rainRate>65535</rainRate><precipSituation><unknown/></precipSituation><solarRadiation>65535</solarRadiation><friction>101</friction><roadFriction>0</roadFriction></weatherReport><weatherProbe><airTemp>52</airTemp><airPressure>71</airPressure><rainRates><statusFront><off/></statusFront><rateFront>0</rateFront></rainRates></weatherProbe></SupplementalVehicleExtensions></partII-Value></BSMpartIIExtension><BSMpartIIExtension><partII-Id>1</partII-Id><partII-Value><SpecialVehicleExtensions><vehicleAlerts><notUsed>0</notUsed><sirenUse><notInUse/></sirenUse><lightsUse><notInUse/></lightsUse><multi><unavailable/></multi><events><notUsed>0</notUsed><event>1000000000000000</event></events></vehicleAlerts></SpecialVehicleExtensions></partII-Value></BSMpartIIExtension></partII></BasicSafetyMessage></value></MessageFrame></data></payload></OdeAsn1Data>";
127-
}
128-
129124
}

services/intersection-api/api/src/test/java/us/dot/its/jpo/ode/api/AssessmentTests.java

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import org.junit.Test;
1111
import org.junit.runner.RunWith;
1212
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo;
1314
import org.springframework.boot.test.context.SpringBootTest;
1415
import org.springframework.boot.test.mock.mockito.MockBean;
1516
import org.springframework.data.mongodb.core.query.Query;
@@ -19,6 +20,7 @@
1920
import org.springframework.security.test.context.support.WithMockUser;
2021
import org.springframework.test.context.junit4.SpringRunner;
2122

23+
import io.zonky.test.db.AutoConfigureEmbeddedDatabase;
2224
import us.dot.its.jpo.conflictmonitor.monitor.models.assessments.ConnectionOfTravelAssessment;
2325
import us.dot.its.jpo.conflictmonitor.monitor.models.assessments.LaneDirectionOfTravelAssessment;
2426
import us.dot.its.jpo.conflictmonitor.monitor.models.assessments.StopLinePassageAssessment;
@@ -34,6 +36,8 @@
3436

3537
@SpringBootTest
3638
@RunWith(SpringRunner.class)
39+
@AutoConfigureDataMongo
40+
@AutoConfigureEmbeddedDatabase
3741
public class AssessmentTests {
3842

3943
@Autowired

services/intersection-api/api/src/test/java/us/dot/its/jpo/ode/api/BsmTest.java

+6-2
Original file line numberDiff line numberDiff line change
@@ -10,21 +10,25 @@
1010
import org.junit.Test;
1111
import org.junit.runner.RunWith;
1212
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo;
14+
import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest;
1315
import org.springframework.boot.test.context.SpringBootTest;
1416
import org.springframework.boot.test.mock.mockito.MockBean;
1517
import org.springframework.http.HttpStatus;
1618
import org.springframework.http.ResponseEntity;
1719
import org.springframework.test.context.junit4.SpringRunner;
1820

21+
import io.zonky.test.db.AutoConfigureEmbeddedDatabase;
1922
import us.dot.its.jpo.ode.api.accessors.bsm.OdeBsmJsonRepository;
2023
import us.dot.its.jpo.ode.api.controllers.BsmController;
2124
import us.dot.its.jpo.ode.api.models.postgres.derived.UserOrgRole;
2225
import us.dot.its.jpo.ode.api.services.PostgresService;
2326
import us.dot.its.jpo.ode.model.OdeBsmData;
2427

25-
26-
@SpringBootTest
2728
@RunWith(SpringRunner.class)
29+
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
30+
@AutoConfigureDataMongo
31+
@AutoConfigureEmbeddedDatabase
2832
public class BsmTest {
2933

3034
@Autowired

services/intersection-api/api/src/test/java/us/dot/its/jpo/ode/api/EmailSettingsTest.java

+5
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,17 @@
77

88
import org.junit.Test;
99
import org.junit.runner.RunWith;
10+
import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo;
1011
import org.springframework.boot.test.context.SpringBootTest;
1112
import org.springframework.test.context.junit4.SpringRunner;
13+
14+
import io.zonky.test.db.AutoConfigureEmbeddedDatabase;
1215
import us.dot.its.jpo.ode.api.models.EmailSettings;
1316

1417
@SpringBootTest
1518
@RunWith(SpringRunner.class)
19+
@AutoConfigureDataMongo
20+
@AutoConfigureEmbeddedDatabase
1621
public class EmailSettingsTest {
1722

1823
@Test

services/intersection-api/api/src/test/java/us/dot/its/jpo/ode/api/EventTests.java

+4
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
import org.junit.Test;
1111
import org.junit.runner.RunWith;
1212
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo;
1314
import org.springframework.boot.test.context.SpringBootTest;
1415
import org.springframework.boot.test.mock.mockito.MockBean;
1516
import org.springframework.data.mongodb.core.query.Query;
1617
import org.springframework.http.HttpStatus;
1718
import org.springframework.http.ResponseEntity;
1819
import org.springframework.test.context.junit4.SpringRunner;
1920

21+
import io.zonky.test.db.AutoConfigureEmbeddedDatabase;
2022
import us.dot.its.jpo.conflictmonitor.monitor.models.bsm.BsmEvent;
2123
import us.dot.its.jpo.conflictmonitor.monitor.models.events.ConnectionOfTravelEvent;
2224
import us.dot.its.jpo.conflictmonitor.monitor.models.events.IntersectionReferenceAlignmentEvent;
@@ -51,6 +53,8 @@
5153

5254
@SpringBootTest
5355
@RunWith(SpringRunner.class)
56+
@AutoConfigureDataMongo
57+
@AutoConfigureEmbeddedDatabase
5458
public class EventTests {
5559

5660
@Autowired

services/intersection-api/api/src/test/java/us/dot/its/jpo/ode/api/MapTest.java

+4
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
import org.junit.Test;
1111
import org.junit.runner.RunWith;
1212
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo;
1314
import org.springframework.boot.test.context.SpringBootTest;
1415
import org.springframework.boot.test.mock.mockito.MockBean;
1516
import org.springframework.data.mongodb.core.query.Query;
1617
import org.springframework.http.HttpStatus;
1718
import org.springframework.http.ResponseEntity;
1819
import org.springframework.test.context.junit4.SpringRunner;
1920

21+
import io.zonky.test.db.AutoConfigureEmbeddedDatabase;
2022
import us.dot.its.jpo.geojsonconverter.pojos.geojson.LineString;
2123
import us.dot.its.jpo.geojsonconverter.pojos.geojson.map.ProcessedMap;
2224
import us.dot.its.jpo.ode.api.accessors.map.ProcessedMapRepository;
@@ -28,6 +30,8 @@
2830

2931
@SpringBootTest
3032
@RunWith(SpringRunner.class)
33+
@AutoConfigureDataMongo
34+
@AutoConfigureEmbeddedDatabase
3135
public class MapTest {
3236

3337
@Autowired

services/intersection-api/api/src/test/java/us/dot/its/jpo/ode/api/NotificationTest.java

+4
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
import org.junit.Test;
1111
import org.junit.runner.RunWith;
1212
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo;
1314
import org.springframework.boot.test.context.SpringBootTest;
1415
import org.springframework.boot.test.mock.mockito.MockBean;
1516
import org.springframework.data.mongodb.core.query.Query;
1617
import org.springframework.http.HttpStatus;
1718
import org.springframework.http.ResponseEntity;
1819
import org.springframework.test.context.junit4.SpringRunner;
1920

21+
import io.zonky.test.db.AutoConfigureEmbeddedDatabase;
2022
import us.dot.its.jpo.conflictmonitor.monitor.models.notifications.ConnectionOfTravelNotification;
2123
import us.dot.its.jpo.conflictmonitor.monitor.models.notifications.IntersectionReferenceAlignmentNotification;
2224
import us.dot.its.jpo.conflictmonitor.monitor.models.notifications.LaneDirectionOfTravelNotification;
@@ -40,6 +42,8 @@
4042

4143
@SpringBootTest
4244
@RunWith(SpringRunner.class)
45+
@AutoConfigureDataMongo
46+
@AutoConfigureEmbeddedDatabase
4347
public class NotificationTest {
4448

4549
@Autowired

services/intersection-api/api/src/test/java/us/dot/its/jpo/ode/api/SpatTest.java

+4
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
import org.junit.Test;
1111
import org.junit.runner.RunWith;
1212
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo;
1314
import org.springframework.boot.test.context.SpringBootTest;
1415
import org.springframework.boot.test.mock.mockito.MockBean;
1516
import org.springframework.data.mongodb.core.query.Query;
1617
import org.springframework.http.HttpStatus;
1718
import org.springframework.http.ResponseEntity;
1819
import org.springframework.test.context.junit4.SpringRunner;
1920

21+
import io.zonky.test.db.AutoConfigureEmbeddedDatabase;
2022
import us.dot.its.jpo.geojsonconverter.pojos.spat.ProcessedSpat;
2123
import us.dot.its.jpo.ode.api.accessors.spat.ProcessedSpatRepository;
2224
import us.dot.its.jpo.ode.api.controllers.SpatController;
@@ -27,6 +29,8 @@
2729

2830
@SpringBootTest
2931
@RunWith(SpringRunner.class)
32+
@AutoConfigureDataMongo
33+
@AutoConfigureEmbeddedDatabase
3034
public class SpatTest {
3135

3236
@Autowired

services/intersection-api/api/src/test/java/us/dot/its/jpo/ode/api/UserCreationTests.java

+4
Original file line numberDiff line numberDiff line change
@@ -10,20 +10,24 @@
1010
import org.junit.Test;
1111
import org.junit.runner.RunWith;
1212
import org.springframework.beans.factory.annotation.Autowired;
13+
import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo;
1314
import org.springframework.boot.test.context.SpringBootTest;
1415
import org.springframework.boot.test.mock.mockito.MockBean;
1516
import org.springframework.data.mongodb.core.query.Query;
1617
import org.springframework.http.HttpStatus;
1718
import org.springframework.http.ResponseEntity;
1819
import org.springframework.test.context.junit4.SpringRunner;
1920

21+
import io.zonky.test.db.AutoConfigureEmbeddedDatabase;
2022
import us.dot.its.jpo.ode.api.accessors.users.UserRepository;
2123
import us.dot.its.jpo.ode.api.controllers.UserController;
2224
import us.dot.its.jpo.ode.api.models.UserCreationRequest;
2325
import us.dot.its.jpo.ode.mockdata.MockUserCreationRequestGenerator;
2426

2527
@SpringBootTest
2628
@RunWith(SpringRunner.class)
29+
@AutoConfigureDataMongo
30+
@AutoConfigureEmbeddedDatabase
2731
public class UserCreationTests {
2832

2933
@MockBean

0 commit comments

Comments
 (0)