diff --git a/adapter-commons/pom.xml b/adapter-commons/pom.xml index 3128142..22703c0 100644 --- a/adapter-commons/pom.xml +++ b/adapter-commons/pom.xml @@ -28,6 +28,11 @@ jackson-datatype-jsr310 2.8.5 + + org.springframework.boot + spring-boot-starter-test + test + diff --git a/adapter-commons/src/test/java/pl/com/bottega/tools/IntegrationTest.java b/adapter-commons/src/test/java/pl/com/bottega/tools/IntegrationTest.java new file mode 100644 index 0000000..c9ed86d --- /dev/null +++ b/adapter-commons/src/test/java/pl/com/bottega/tools/IntegrationTest.java @@ -0,0 +1,18 @@ +package pl.com.bottega.tools; + +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.core.annotation.AliasFor; +import org.springframework.test.context.ActiveProfiles; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@SpringBootTest +@ActiveProfiles +public @interface IntegrationTest { + @AliasFor(annotation = ActiveProfiles.class, attribute = "profiles") String[] activeProfiles() default {"test"}; +} diff --git a/app-monolith/pom.xml b/app-monolith/pom.xml index 54f1ca7..4d8a205 100644 --- a/app-monolith/pom.xml +++ b/app-monolith/pom.xml @@ -131,6 +131,29 @@ + + org.codehaus.gmavenplus + gmavenplus-plugin + 1.6 + + + + compileTests + + + + + + maven-surefire-plugin + 2.20.1 + + false + + **/*Spec.java + **/*Test.java + + + diff --git a/app-monolith/src/test/pl/com/bottega/factory/ProductTrait.groovy b/app-monolith/src/test/groovy/pl/com/bottega/factory/ProductTrait.groovy similarity index 96% rename from app-monolith/src/test/pl/com/bottega/factory/ProductTrait.groovy rename to app-monolith/src/test/groovy/pl/com/bottega/factory/ProductTrait.groovy index 98c67ee..7ae2b03 100644 --- a/app-monolith/src/test/pl/com/bottega/factory/ProductTrait.groovy +++ b/app-monolith/src/test/groovy/pl/com/bottega/factory/ProductTrait.groovy @@ -1,4 +1,4 @@ -package src.test.pl.com.bottega.factory +package pl.com.bottega.factory import pl.com.bottega.factory.demand.forecasting.Demand import pl.com.bottega.factory.demand.forecasting.Document @@ -13,7 +13,6 @@ import java.time.ZoneOffset trait ProductTrait { - DocumentEntity documentFor(String refNo, LocalDate date, long ... levels) { Document document = document(refNo, date, levels) return new DocumentEntity("uri", "storedUri", document) diff --git a/app-monolith/src/test/pl/com/bottega/factory/integration/CallOffDocumentIntegrationSpec.groovy b/app-monolith/src/test/groovy/pl/com/bottega/factory/integration/CallOffDocumentIntegrationSpec.groovy similarity index 91% rename from app-monolith/src/test/pl/com/bottega/factory/integration/CallOffDocumentIntegrationSpec.groovy rename to app-monolith/src/test/groovy/pl/com/bottega/factory/integration/CallOffDocumentIntegrationSpec.groovy index a5a065c..f897e6c 100644 --- a/app-monolith/src/test/pl/com/bottega/factory/integration/CallOffDocumentIntegrationSpec.groovy +++ b/app-monolith/src/test/groovy/pl/com/bottega/factory/integration/CallOffDocumentIntegrationSpec.groovy @@ -1,4 +1,4 @@ -package src.test.pl.com.bottega.factory.integration +package pl.com.bottega.factory.integration import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootTest @@ -10,11 +10,12 @@ import org.springframework.hateoas.Resources import org.springframework.http.HttpMethod import org.springframework.http.ResponseEntity import pl.com.bottega.factory.AppConfiguration +import pl.com.bottega.factory.ProductTrait import pl.com.bottega.factory.demand.forecasting.persistence.DocumentEntity import pl.com.bottega.factory.demand.forecasting.projection.CurrentDemandEntity import pl.com.bottega.factory.product.management.ProductDescriptionEntity +import pl.com.bottega.tools.IntegrationTest import spock.lang.Specification -import src.test.pl.com.bottega.factory.ProductTrait import java.time.Clock import java.time.LocalDate @@ -23,11 +24,12 @@ import java.time.ZoneId import static java.time.Instant.from import static org.springframework.boot.test.context.SpringBootTest.WebEnvironment.RANDOM_PORT +@IntegrationTest @SpringBootTest(webEnvironment = RANDOM_PORT, classes = AppConfiguration) class CallOffDocumentIntegrationSpec extends Specification implements ProductTrait { - public static final String PRODUCT_REF_NO = "refNum" - public static final LocalDate ANY_DATE = LocalDate.of(2019, 1, 1) + public static final String PRODUCT_REF_NO = "3009000" + public static final LocalDate ANY_DATE = LocalDate.now() @Autowired TestRestTemplate restTemplate @@ -44,7 +46,6 @@ class CallOffDocumentIntegrationSpec extends Specification implements ProductTra thereIsDemand(demands, ANY_DATE, 100) thereIsDemand(demands, ANY_DATE.plusDays(1), 200) thereIsDemand(demands, ANY_DATE.plusDays(2), 300) - } void productDescriptionIsSuccessfullyCreated(String refNo) { @@ -65,10 +66,9 @@ class CallOffDocumentIntegrationSpec extends Specification implements ProductTra HttpMethod.GET, null, new ParameterizedTypeReference>() {}, - ["refNo": refNo, "date" : date]) + ["refNo": refNo, "date": date]) assert res.statusCode.is2xxSuccessful() return res.getBody().getContent() - } void thereIsDemand(Collection demands, LocalDate date, long expectedLevel) { @@ -81,9 +81,6 @@ class CallOffDocumentIntegrationSpec extends Specification implements ProductTra @Bean Clock clock() { return Clock.fixed(from(ANY_DATE), ZoneId.systemDefault()) - } - - } } \ No newline at end of file diff --git a/app-monolith/src/test/resources/application-test.properties b/app-monolith/src/test/resources/application-test.properties new file mode 100644 index 0000000..79eedd9 --- /dev/null +++ b/app-monolith/src/test/resources/application-test.properties @@ -0,0 +1,4 @@ +spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_ON_EXIT=FALSE +spring.datasource.username=sa +spring.datasource.password=sa +spring.datasource.driver-class-name=org.h2.Driver diff --git a/app-monolith/src/test/resources/application.properties b/app-monolith/src/test/resources/application.properties deleted file mode 100644 index 5d7b0a5..0000000 --- a/app-monolith/src/test/resources/application.properties +++ /dev/null @@ -1,10 +0,0 @@ -spring.datasource.driver-class-name=org.h2.Driver -spring.datasource.url=jdbc:h2:mem:db;DB_CLOSE_DELAY=-1 -spring.datasource.username=sa -spring.datasource.password=sa - -spring.main.banner-mode=off -spring.jpa.database=default -spring.jpa.generate-ddl=false - -liquibase.change-log=classpath:/schema/db.changelog.xml diff --git a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/Document.java b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/Document.java index efa1edc..239a7ee 100644 --- a/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/Document.java +++ b/demand-forecasting-model/src/main/java/pl/com/bottega/factory/demand/forecasting/Document.java @@ -27,4 +27,3 @@ public class Document { return refNo; } } -