From 6790922b5f453c3b935e66c3a5f3ad9f3d1d39b5 Mon Sep 17 00:00:00 2001 From: Colin DAMON Date: Sun, 10 Jul 2022 16:16:54 +0200 Subject: [PATCH] Migrate jacoco coverrage to module --- .../domain/JacocoThresholdModuleFactory.java | 54 ++++++++ .../JacocoThresholdModuleFactoryTest.java | 120 ++++++++++++++++++ 2 files changed, 174 insertions(+) create mode 100644 src/main/java/tech/jhipster/lite/generator/server/javatool/jacoco/domain/JacocoThresholdModuleFactory.java create mode 100644 src/test/java/tech/jhipster/lite/generator/server/javatool/jacoco/domain/JacocoThresholdModuleFactoryTest.java diff --git a/src/main/java/tech/jhipster/lite/generator/server/javatool/jacoco/domain/JacocoThresholdModuleFactory.java b/src/main/java/tech/jhipster/lite/generator/server/javatool/jacoco/domain/JacocoThresholdModuleFactory.java new file mode 100644 index 00000000000..50ab01620d8 --- /dev/null +++ b/src/main/java/tech/jhipster/lite/generator/server/javatool/jacoco/domain/JacocoThresholdModuleFactory.java @@ -0,0 +1,54 @@ +package tech.jhipster.lite.generator.server.javatool.jacoco.domain; + +import static tech.jhipster.lite.module.domain.JHipsterModule.*; + +import tech.jhipster.lite.error.domain.Assert; +import tech.jhipster.lite.module.domain.JHipsterModule; +import tech.jhipster.lite.module.domain.properties.JHipsterModuleProperties; + +public class JacocoThresholdModuleFactory { + + public JHipsterModule buildModule(JHipsterModuleProperties properties) { + Assert.notNull("properties", properties); + + return moduleBuilder(properties) + .mandatoryReplacements() + .in("pom.xml") + .add( + justLineAfter( + regex("\\s*target\\/jacoco\\/<\\/outputDirectory>[\n\r]*\\s*<\\/configuration>[\n\r]*\\s*<\\/execution>") + ), + """ + + check + + check + + + target/jacoco/allTest.exec + + + CLASS + + + LINE + COVEREDRATIO + 1.00 + + + BRANCH + COVEREDRATIO + 1.00 + + + + + + + """ + ) + .and() + .and() + .build(); + } +} diff --git a/src/test/java/tech/jhipster/lite/generator/server/javatool/jacoco/domain/JacocoThresholdModuleFactoryTest.java b/src/test/java/tech/jhipster/lite/generator/server/javatool/jacoco/domain/JacocoThresholdModuleFactoryTest.java new file mode 100644 index 00000000000..17731fbdc83 --- /dev/null +++ b/src/test/java/tech/jhipster/lite/generator/server/javatool/jacoco/domain/JacocoThresholdModuleFactoryTest.java @@ -0,0 +1,120 @@ +package tech.jhipster.lite.generator.server.javatool.jacoco.domain; + +import static tech.jhipster.lite.module.infrastructure.secondary.JHipsterModulesAssertions.*; + +import org.junit.jupiter.api.Test; +import tech.jhipster.lite.TestFileUtils; +import tech.jhipster.lite.UnitTest; +import tech.jhipster.lite.module.domain.JHipsterModule; +import tech.jhipster.lite.module.domain.JHipsterModulesFixture; +import tech.jhipster.lite.module.domain.properties.JHipsterModuleProperties; + +@UnitTest +class JacocoThresholdModuleFactoryTest { + + private static final JacocoThresholdModuleFactory factory = new JacocoThresholdModuleFactory(); + + @Test + void shouldBuildModule() { + JHipsterModuleProperties properties = JHipsterModulesFixture.propertiesBuilder(TestFileUtils.tmpDirForTest()).build(); + + JHipsterModule module = factory.buildModule(properties); + + assertThatModuleWithFiles(module, pomFile()) + .createFile("pom.xml") + .containing( + """ + + org.jacoco + jacoco-maven-plugin + ${jacoco.version} + + + pre-unit-tests + + prepare-agent + + + + + post-unit-test + test + + report + + + + pre-integration-tests + + prepare-agent-integration + + + + + post-integration-tests + post-integration-test + + report-integration + + + + merge + verify + + merge + + + + + ${project.basedir} + + **/*.exec + + + + target/jacoco/allTest.exec + + + + post-merge-report + verify + + report + + + target/jacoco/allTest.exec + target/jacoco/ + + + + check + + check + + + target/jacoco/allTest.exec + + + CLASS + + + LINE + COVEREDRATIO + 1.00 + + + BRANCH + COVEREDRATIO + 1.00 + + + + + + + + + """ + ); + } +}