diff --git a/website/src/main/java/dev/christopherbell/configuration/mongo/migration/MigrationStateStore.java b/website/src/main/java/dev/christopherbell/configuration/mongo/migration/MigrationStateStore.java index c309a279..d85c5060 100644 --- a/website/src/main/java/dev/christopherbell/configuration/mongo/migration/MigrationStateStore.java +++ b/website/src/main/java/dev/christopherbell/configuration/mongo/migration/MigrationStateStore.java @@ -4,6 +4,7 @@ import dev.christopherbell.configuration.mongo.domain.KindScopedMongoOperations; import java.time.Instant; import java.util.Optional; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; @@ -14,6 +15,7 @@ public class MigrationStateStore { private final KindScopedMongoOperations mongo; + @Autowired public MigrationStateStore(DomainMongoOperationsFactory factory) { this.mongo = factory.forType(MigrationRecord.class); } diff --git a/website/src/test/java/dev/christopherbell/configuration/mongo/migration/MigrationStateStoreTest.java b/website/src/test/java/dev/christopherbell/configuration/mongo/migration/MigrationStateStoreTest.java index 3327e644..d2cb8414 100644 --- a/website/src/test/java/dev/christopherbell/configuration/mongo/migration/MigrationStateStoreTest.java +++ b/website/src/test/java/dev/christopherbell/configuration/mongo/migration/MigrationStateStoreTest.java @@ -8,6 +8,7 @@ import static org.mockito.Mockito.when; import com.mongodb.client.result.UpdateResult; +import dev.christopherbell.configuration.mongo.domain.DomainMongoOperationsFactory; import dev.christopherbell.configuration.mongo.domain.KindScopedMongoOperations; import java.time.Instant; import org.junit.jupiter.api.BeforeEach; @@ -18,6 +19,7 @@ import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.data.mongodb.core.query.Query; import org.springframework.data.mongodb.core.query.Update; +import org.springframework.context.annotation.AnnotationConfigApplicationContext; @ExtendWith(MockitoExtension.class) class MigrationStateStoreTest { @@ -26,6 +28,20 @@ class MigrationStateStoreTest { @Mock private KindScopedMongoOperations mongo; private MigrationStateStore store; + @Test + void springSelectsTheProductionFactoryConstructor() { + try (var context = new AnnotationConfigApplicationContext()) { + context.registerBean( + DomainMongoOperationsFactory.class, + () -> org.mockito.Mockito.mock(DomainMongoOperationsFactory.class)); + context.register(MigrationStateStore.class); + + context.refresh(); + + assertThat(context.getBean(MigrationStateStore.class)).isNotNull(); + } + } + @BeforeEach void setUp() { store = new MigrationStateStore(mongo);