diff --git a/pom.xml b/pom.xml index 4e71842..28e2f3f 100644 --- a/pom.xml +++ b/pom.xml @@ -72,6 +72,7 @@ de.flapdoodle.embed de.flapdoodle.embed.mongo + 3.4.5 test diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 2f7f362..de5d193 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -1,12 +1,11 @@ spring: application: name: reactive-timesheet-app - data: - mongodb: - database: db_1 - host: localhost - port: 27017 + # data: + # database: db_1 + # host: localhost + # port: 27017 mongodb: embedded: - version: 3.6.5 \ No newline at end of file + version: 3.4.5 \ No newline at end of file diff --git a/src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/TeamServiceTest.java b/src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/TeamServiceTest.java index 517e43a..1a09f3d 100644 --- a/src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/TeamServiceTest.java +++ b/src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/TeamServiceTest.java @@ -1,5 +1,6 @@ package net.szymonsawicki.reactivetimesheetapp.application.service; +import net.szymonsawicki.reactivetimesheetapp.application.service.utils.TimesheetAppMongoDbContainer; import net.szymonsawicki.reactivetimesheetapp.domain.team.Team; import net.szymonsawicki.reactivetimesheetapp.domain.team.TeamUtils; import net.szymonsawicki.reactivetimesheetapp.domain.team.repository.TeamRepository; @@ -8,28 +9,23 @@ import net.szymonsawicki.reactivetimesheetapp.domain.user.repository.UserReposit import net.szymonsawicki.reactivetimesheetapp.domain.user.type.Role; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.test.autoconfigure.data.mongo.AutoConfigureDataMongo; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.data.mongodb.core.MongoTemplate; +import org.testcontainers.containers.MongoDBContainer; +import org.testcontainers.junit.jupiter.Container; +import reactor.test.StepVerifier; import java.util.List; @SpringBootTest -@AutoConfigureDataMongo -// @Testcontainers -// @DataMongoTest public class TeamServiceTest { -/* @Container - private static final MongoDBContainer MONGO_DB_CONTAINER = AppMongoDbContainer.getInstance();*/ + private static final MongoDBContainer MONGO_DB_CONTAINER = TimesheetAppMongoDbContainer.getInstance(); @Autowired private TeamRepository teamRepository; @Autowired private UserRepository userRepository; - @Autowired - private MongoTemplate mongoTemplate; @Test void shouldReturnTeamOnGetById() { @@ -47,15 +43,16 @@ public class TeamServiceTest { .build(); var team = Team.builder() - .id(teamId) .name(teamName) .members(List.of(member)) .build(); var insertedTeam = teamRepository.save(team); - var insertedTeamId = TeamUtils.toId.apply(teamRepository.save(team).block()); + var insertedTeamId = TeamUtils.toId.apply(insertedTeam.block()); + StepVerifier.create(teamRepository.findById(insertedTeamId)) + .expectNextMatches(t -> TeamUtils.toMembers.apply(t).size() == 1) + .verifyComplete(); } - } diff --git a/src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/utils/AppMongoDbContainer.java b/src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/utils/TimesheetAppMongoDbContainer.java similarity index 53% rename from src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/utils/AppMongoDbContainer.java rename to src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/utils/TimesheetAppMongoDbContainer.java index d7c08b8..08cba95 100644 --- a/src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/utils/AppMongoDbContainer.java +++ b/src/test/java/net/szymonsawicki/reactivetimesheetapp/application/service/utils/TimesheetAppMongoDbContainer.java @@ -2,7 +2,7 @@ package net.szymonsawicki.reactivetimesheetapp.application.service.utils; import org.testcontainers.containers.MongoDBContainer; -public class AppMongoDbContainer extends MongoDBContainer { +public class TimesheetAppMongoDbContainer extends MongoDBContainer { private static final String IMAGE_VERSION = "mongo:4.0.10"; @@ -10,23 +10,18 @@ public class AppMongoDbContainer extends MongoDBContainer { public static synchronized MongoDBContainer getInstance() { if (container == null) { - container = new AppMongoDbContainer() - .withEnv("MONGO_DB_HOST", "mongodb") - .withExposedPorts(27017); + container = new TimesheetAppMongoDbContainer(); } return container; } - private AppMongoDbContainer() { + private TimesheetAppMongoDbContainer() { super(IMAGE_VERSION); } @Override public void start() { super.start(); - System.setProperty("spring.data.mongodb.host", container.getHost()); - System.setProperty("spring.data.mongodb.port", String.valueOf(container.getBoundPortNumbers())); - System.setProperty("spring.data.mongodb.database", "db_1"); } @Override