package dev.aleixmorgadas.eventsourcedmongo.domain; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest; import org.springframework.boot.testcontainers.service.connection.ServiceConnection; import org.testcontainers.containers.MongoDBContainer; import org.testcontainers.junit.jupiter.Container; import org.testcontainers.junit.jupiter.Testcontainers; import org.testcontainers.utility.DockerImageName; import static org.assertj.core.api.Assertions.assertThat; @DataMongoTest @Testcontainers public class ProfileRepositoryTest { @Container @ServiceConnection static MongoDBContainer mongo = new MongoDBContainer(DockerImageName.parse("mongo:6.0.7")); @Autowired ProfileRepository repository; @Test void savesProfileIntoDB() { var profile = Profile.of("Aleix"); profile.withAge(30); repository.save(profile); var id = profile.id; var savedProfile = repository.findById(id).orElseThrow(); assertThat(savedProfile.events).hasSize(2); assertThat(savedProfile.name()).isEqualTo("Aleix"); assertThat(savedProfile.age()).isEqualTo(30); } }