diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 579dec6d07041fa310ff7af72dd8cc91382198fa..22e131ba492ee76c0da98b629cc2f49b229fda99 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -41,7 +41,15 @@ stages: maven_build: image: maven:3.9.4-amazoncorretto-21 stage: build - script: mvn --batch-mode clean compile + script: + - mvn --batch-mode clean compile test-compile -DskipTests + cache: + key: ${CI_COMMIT_REF_SLUG} + paths: + - .m2/repository/ + artifacts: + paths: + - target/ tags: - docker rules: @@ -53,6 +61,8 @@ include: # - local: .gitlab_package.yml - local: .gitlab_build_doc.yml path: . + - local: .gitlab_test_mvn.yml + path: . - local: .gitlab-ci_docker.yml path: . #- local: .gitlab-ci_sonar.yml @@ -60,15 +70,3 @@ include: # - local: .gitlab_build_doc2.yml -maven_test_configuration_build: - image: maven:3.9.4-amazoncorretto-21 - stage: test - script: mvn --batch-mode clean test -Ptest_configuration_build - tags: - - docker - artifacts: - reports: - junit: - - target/surefire-reports/TEST-*.xml - rules: - - if: $CI_JOB_MANUAL!= "true" diff --git a/.gitlab_test_mvn.yml b/.gitlab_test_mvn.yml index bec71a4546488478fe51fb59c41b03d237351b93..fd402432e2361a793a1a4e05d944afe0998cedb8 100644 --- a/.gitlab_test_mvn.yml +++ b/.gitlab_test_mvn.yml @@ -1,118 +1,71 @@ -maven_test_rest_1: +.st_test_template: &test_template image: maven:3.9.4-amazoncorretto-21 stage: test - script: mvn --batch-mode clean test -Ptest_rest_1 - tags: - - docker artifacts: + when: always reports: - junit: - - target/surefire-reports/TEST-*.xml - rules: - - if: $CI_JOB_MANUAL!= "true" + junit: target/surefire-reports/*.xml + paths: + - target/surefire-reports/ + script: + - | + # Par défaut, si le job est nommé "test_all" on ne filtre pas (profil all-tests) + # Sinon, on retire le préfixe "test_" et on remplace le premier underscore par un point. + if [[ "$CI_JOB_NAME" == "test_all" ]]; then + export MAVEN_PROFILE=all-tests + else + export MAVEN_PROFILE=$(echo "$CI_JOB_NAME" | sed -e 's/^test_//' -e 's/_/./') + fi + echo "Utilisation du profil Maven: $MAVEN_PROFILE" + - mvn test -P$MAVEN_PROFILE -maven_test_rest_1_ACBB: - image: maven:3.9.4-amazoncorretto-21 - stage: test - script: mvn --batch-mode clean test -Ptest_rest_1_ACBB - tags: - - docker - artifacts: - reports: - junit: - - target/surefire-reports/TEST-*.xml - rules: - - if: $CI_JOB_MANUAL!= "true" +test_core_basic: + <<: *test_template -maven_test_rest_1_Haute_Frequence: - image: maven:3.9.4-amazoncorretto-21 - stage: test - script: mvn --batch-mode clean test -Ptest_rest_1_Haute_Frequence - tags: - - docker - artifacts: - reports: - junit: - - target/surefire-reports/TEST-*.xml - rules: - - if: $CI_JOB_MANUAL!= "true" +test_core_config: + <<: *test_template -maven_test_rest_2: - image: maven:3.9.4-amazoncorretto-21 - stage: test - script: mvn --batch-mode clean test -Ptest_rest_2 - tags: - - docker - artifacts: - reports: - junit: - - target/surefire-reports/TEST-*.xml - rules: - - if: $CI_JOB_MANUAL!= "true" +test_core_auth: + <<: *test_template -maven_test_rest_others: - image: maven:3.9.4-amazoncorretto-21 - stage: test - script: mvn --batch-mode clean test -Ptest_rest_others - tags: - - docker - artifacts: - reports: - junit: - - target/surefire-reports/TEST-*.xml - rules: - - if: $CI_JOB_MANUAL!= "true" +test_domain_model: + <<: *test_template -maven_test_checker: - image: maven:3.9.4-amazoncorretto-21 - stage: test - script: mvn --batch-mode clean test -Ptest_checker - tags: - - docker - artifacts: - reports: - junit: - - target/surefire-reports/TEST-*.xml - rules: - - if: $CI_JOB_MANUAL!= "true" +test_domain_checker: + <<: *test_template -maven_test_model: - image: maven:3.9.4-amazoncorretto-21 - stage: test - script: mvn --batch-mode clean test -Ptest_model - tags: - - docker - artifacts: - reports: - junit: - - target/surefire-reports/TEST-*.xml - rules: - - if: $CI_JOB_MANUAL!= "true" +test_domain_i18n: + <<: *test_template -maven_test_persistence: - image: maven:3.9.4-amazoncorretto-21 - stage: test - script: mvn --batch-mode clean test -Ptest_persistence - tags: - - docker - artifacts: - reports: - junit: - - target/surefire-reports/TEST-*.xml - rules: - - if: $CI_JOB_MANUAL!= "true" +test_integration_rest: + <<: *test_template +test_integration_persistence: + <<: *test_template +test_app_monsoere: + <<: *test_template -maven_swagger_build: - image: maven:3.9.4-amazoncorretto-21 - stage: test - script: - - mvn --batch-mode clean test -Pswagger_build - tags: - - docker - artifacts: - paths: - - documentations/ - rules: - - if: $CI_JOB_MANUAL!= "true" +test_app_haute_frequence: + <<: *test_template + +test_app_acbb: + <<: *test_template + +test_app_olac: + <<: *test_template + +test_app_foret: + <<: *test_template + +test_app_pattern: + <<: *test_template + +test_app_recursivity: + <<: *test_template + +test_app_teledetection: + <<: *test_template + +test_no-tags: + <<: *test_template diff --git a/pom.xml b/pom.xml index e61894860d06009dd0495c6ed6e6c434b840b0f7..721908f22616ec5c7f88a0773fd4abfa02ace313 100644 --- a/pom.xml +++ b/pom.xml @@ -88,7 +88,8 @@ <!--sonar--> <sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin> <sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis> - <sonar.coverage.jacoco.xmlReportPaths>${project.basedir}/target/site/jacoco.exec</sonar.coverage.jacoco.xmlReportPaths> + <sonar.coverage.jacoco.xmlReportPaths>${project.basedir}/target/site/jacoco.exec + </sonar.coverage.jacoco.xmlReportPaths> <sonar.language>java</sonar.language> <sonar.projectKey>anaee-dev_openadom_backend_caf3d282-990e-4907-8f15-44424cf3c8b0</sonar.projectKey> <sonar.projectName>openADOM-backend</sonar.projectName> @@ -400,6 +401,12 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <!-- Utilisez une version récente pour être certain du support adéquat de JUnit 5 --> + <version>3.0.0-M5</version> + </plugin> </plugins> </build> <profiles> @@ -442,224 +449,345 @@ </plugins> </build> </profile> + <profile> + <id>core.basic</id> + <properties> + <junit.jupiter.tags>core.basic</junit.jupiter.tags> + </properties> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> + <configuration> + <groups>${junit.jupiter.tags}</groups> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <!-- Profil pour les tests tagués "core.config" --> <profile> - <id>test_checker</id> + <id>core.config</id> + <properties> + <junit.jupiter.tags>core.config</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <parallel>classesAndMethods</parallel> - <threadCount>4</threadCount> - <perCoreThreadCount>true</perCoreThreadCount> - <parallelTestsTimeoutInSeconds>300</parallelTestsTimeoutInSeconds> - <parallelTestsTimeoutForcedInSeconds>600</parallelTestsTimeoutForcedInSeconds> - <parallelOptimized>true</parallelOptimized> - - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <includes> - <include>fr/inra/oresing/checker/**.java</include> - </includes> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + + <!-- Profil pour les tests tagués "core.auth" --> <profile> - <id>test_model</id> + <id>core.auth</id> + <properties> + <junit.jupiter.tags>core.auth</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <includes> - <include>fr/inra/oresing/model/**Test.java</include> - <include>fr/inra/oresing/model/**/**Test.java</include> - </includes> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + + <!-- Profil pour les tests tagués "domain.model" --> <profile> - <id>test_persistence</id> + <id>domain.model</id> + <properties> + <junit.jupiter.tags>domain.model</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <includes> - <include>fr/inra/oresing/persistence/**Test.java</include> - </includes> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + + <!-- Profil pour les tests tagués "domain.checker" --> <profile> - <id>test_rest_1</id> + <id>domain.checker</id> + <properties> + <junit.jupiter.tags>domain.checker</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <includes> - <include>fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java</include> - <include>fr/inra/oresing/rest/Migration.java</include> - <include>fr/inra/oresing/rest/MultiYaml.java</include> - <include>fr/inra/oresing/rest/RelationalService.java</include> - <include>fr/inra/oresing/rest/TestReferencesErrors.java</include> - </includes> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + + <!-- Profil pour les tests tagués "domain.i18n" --> <profile> - <id>test_rest_1_Haute_Frequence</id> + <id>domain.i18n</id> + <properties> + <junit.jupiter.tags>domain.i18n</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <groups>HAUTE_FREQUENCE_TEST</groups> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + + <!-- Profil pour les tests tagués "integration.rest" --> <profile> - <id>test_rest_1_ACBB</id> + <id>integration.rest</id> + <properties> + <junit.jupiter.tags>integration.rest</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <groups>ACBB_TEST</groups> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + + <!-- Profil pour les tests tagués "integration.persistence" --> <profile> - <id>test_rest_2</id> + <id>integration.persistence</id> + <properties> + <junit.jupiter.tags>integration.persistence</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <includes> - </includes> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + + <!-- Profils pour les tests applicatifs --> <profile> - <id>swagger_build</id> + <id>app.monsoere</id> + <properties> + <junit.jupiter.tags>app.monsoere</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <groups>SWAGGER_BUILD</groups> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + <profile> - <id>test_rest_others</id> + <id>app.haute_frequence</id> + <properties> + <junit.jupiter.tags>app.haute_frequence</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <groups>OTHERS_TEST</groups> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + <profile> - <id>test_rest_model_request_test</id> + <id>app.acbb</id> + <properties> + <junit.jupiter.tags>app.acbb</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <forkCount>4</forkCount> - <reuseForks>false</reuseForks> - <testSourceDirectory>src/test</testSourceDirectory> - <testFailureIgnore>false</testFailureIgnore> - <groups>MODEL_REQUEST_TEST</groups> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + <profile> - <id>test_configuration_build</id> + <id>app.olac</id> + <properties> + <junit.jupiter.tags>app.olac</junit.jupiter.tags> + </properties> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> <configuration> - <includes> - <include>TestConfigurationSuite</include> - </includes> + <groups>${junit.jupiter.tags}</groups> </configuration> </plugin> </plugins> </build> </profile> + + <profile> + <id>app.foret</id> + <properties> + <junit.jupiter.tags>app.foret</junit.jupiter.tags> + </properties> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> + <configuration> + <groups>${junit.jupiter.tags}</groups> + </configuration> + </plugin> + </plugins> + </build> + </profile> + + <profile> + <id>app.pattern</id> + <properties> + <junit.jupiter.tags>app.pattern</junit.jupiter.tags> + </properties> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> + <configuration> + <groups>${junit.jupiter.tags}</groups> + </configuration> + </plugin> + </plugins> + </build> + </profile> + + <profile> + <id>app.recursivity</id> + <properties> + <junit.jupiter.tags>app.recursivity</junit.jupiter.tags> + </properties> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> + <configuration> + <groups>${junit.jupiter.tags}</groups> + </configuration> + </plugin> + </plugins> + </build> + </profile> + + <profile> + <id>app.teledetection</id> + <properties> + <junit.jupiter.tags>app.teledetection</junit.jupiter.tags> + </properties> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> + <configuration> + <groups>${junit.jupiter.tags}</groups> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>no-tags</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-plugin</artifactId> + <version>3.0.0-M5</version> + <configuration> + <argLine>-XX:+EnableDynamicAgentLoading</argLine> + <excludedGroups> + SUITE,core.basic,core.config,core.auth, + domain.model,domain.checker,domain.i18n, + integration.rest,integration.persistence, + app.monsoere,app.haute_frequence,app.acbb, + app.olac,app.foret,app.pattern,app.recursivity,app.teledetection + </excludedGroups> + </configuration> + </plugin> + </plugins> + </build> + </profile> + <profile> + <id>all-tests</id> + <activation> + <activeByDefault>true</activeByDefault> + </activation> + </profile> </profiles> </project> \ No newline at end of file diff --git a/src/test/java/TestConfigurationSuite.java b/src/test/java/TestConfigurationSuite.java deleted file mode 100644 index 43754ee420f17d08036b1735c660b18df20624dc..0000000000000000000000000000000000000000 --- a/src/test/java/TestConfigurationSuite.java +++ /dev/null @@ -1,10 +0,0 @@ -import org.junit.jupiter.api.Tag; -import org.junit.platform.suite.api.*; - -@Suite -@SelectPackages("fr.inra.oresing") -@SuiteDisplayName("Tests for BrokenAdom") -@Tag("MODEL_REQUEST_TEST") -@IncludeTags({"UPLOAD_BUNDLE", "SUITE"}) -public class TestConfigurationSuite { -} diff --git a/src/test/java/fr/inra/oresing/ApplicationTest.java b/src/test/java/fr/inra/oresing/ApplicationTest.java index f5f2ec4ba112cf8fb6d5994ff39cb941f03bc236..c7398cf621c7c4a4a7093be5719c6867493af51d 100644 --- a/src/test/java/fr/inra/oresing/ApplicationTest.java +++ b/src/test/java/fr/inra/oresing/ApplicationTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.api.Test; import java.util.UUID; -@org.junit.jupiter.api.Tag("SUITE") +@org.junit.jupiter.api.Tag("core.basic") public class ApplicationTest { @Test public void test() { diff --git a/src/test/java/fr/inra/oresing/domain/LocalDateTimeRangeTest.java b/src/test/java/fr/inra/oresing/domain/LocalDateTimeRangeTest.java index d649aff31f15570b67ec06161d5caf09cb2b281d..964b7a6b688c266077158401119752bb4d9fdaee 100644 --- a/src/test/java/fr/inra/oresing/domain/LocalDateTimeRangeTest.java +++ b/src/test/java/fr/inra/oresing/domain/LocalDateTimeRangeTest.java @@ -10,7 +10,7 @@ import org.junit.jupiter.api.Test; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAccessor; -@org.junit.jupiter.api.Tag("SUITE") +@org.junit.jupiter.api.Tag("domain.model") public class LocalDateTimeRangeTest { /*@Test diff --git a/src/test/java/fr/inra/oresing/domain/application/BrokenConfigurationTest.java b/src/test/java/fr/inra/oresing/domain/application/BrokenConfigurationTest.java index de3f49362842f0fa3897994a7b58ede22fe23312..a2775708d7d146f3e3a3052fd955e2041444417c 100644 --- a/src/test/java/fr/inra/oresing/domain/application/BrokenConfigurationTest.java +++ b/src/test/java/fr/inra/oresing/domain/application/BrokenConfigurationTest.java @@ -8,7 +8,8 @@ import java.util.List; import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; -@org.junit.jupiter.api.Tag("SUITE") + +@org.junit.jupiter.api.Tag("core.config") class ConfigurationTest { diff --git a/src/test/java/fr/inra/oresing/domain/application/BuilderNodeTest.java b/src/test/java/fr/inra/oresing/domain/application/BuilderNodeTest.java index d500f50ce6ef7cb8fc59e30dbf93638f85df7e0c..93d49a66e5e99258c30b022b961a99a5a55ac620 100644 --- a/src/test/java/fr/inra/oresing/domain/application/BuilderNodeTest.java +++ b/src/test/java/fr/inra/oresing/domain/application/BuilderNodeTest.java @@ -12,7 +12,7 @@ import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; -@org.junit.jupiter.api.Tag("SUITE") +@org.junit.jupiter.api.Tag("core.config") class BuilderNodeTest { final Map<String, BuilderNode> builderNodes = Arrays.stream(new JsonRowMapper<BuilderNode>().readValue(""" [ diff --git a/src/test/java/fr/inra/oresing/domain/application/configuration/ConfigurationTest.java b/src/test/java/fr/inra/oresing/domain/application/configuration/ConfigurationTest.java index 6ba94dcc68f41c50a961d8c64c5e33af913f3103..82fb90cbce04b332951cd051c1a63f298db52a5b 100644 --- a/src/test/java/fr/inra/oresing/domain/application/configuration/ConfigurationTest.java +++ b/src/test/java/fr/inra/oresing/domain/application/configuration/ConfigurationTest.java @@ -12,7 +12,7 @@ import org.mockito.Mockito; import java.util.*; -@org.junit.jupiter.api.Tag("SUITE") +@org.junit.jupiter.api.Tag("core.config") class ConfigurationTest { public static final JsonRowMapper MAPPER = new JsonRowMapper<ComponentDescription>(); diff --git a/src/test/java/fr/inra/oresing/domain/application/configuration/LtreeTest.java b/src/test/java/fr/inra/oresing/domain/application/configuration/LtreeTest.java index 80e5897677b8a8cf58d982fb2e2e7615df90e4a9..1de2049bd18aaf71c9586e812084751dd975ac46 100644 --- a/src/test/java/fr/inra/oresing/domain/application/configuration/LtreeTest.java +++ b/src/test/java/fr/inra/oresing/domain/application/configuration/LtreeTest.java @@ -7,7 +7,7 @@ import org.junit.jupiter.params.provider.ValueSource; import static org.junit.jupiter.api.Assertions.*; -@Tag("SUITE") +@Tag("core.config") class LtreeTest { @Test void assertThatAStringWithInvalidCharactersCanBeEncodedTwice(){ diff --git a/src/test/java/fr/inra/oresing/domain/application/configuration/SubmissionTest.java b/src/test/java/fr/inra/oresing/domain/application/configuration/SubmissionTest.java index 5955b26012109260595e1a213776b83832552b9b..b171d491036d6e399b203b5972e9e332818d1295 100644 --- a/src/test/java/fr/inra/oresing/domain/application/configuration/SubmissionTest.java +++ b/src/test/java/fr/inra/oresing/domain/application/configuration/SubmissionTest.java @@ -3,9 +3,7 @@ package fr.inra.oresing.domain.application.configuration; import fr.inra.oresing.domain.BinaryFileDataset; import fr.inra.oresing.domain.exceptions.authorization.AuthorizationRequestException; import fr.inra.oresing.domain.exceptions.authorization.SiOreAuthorizationRequestException; -import groovy.lang.Tuple; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import java.util.LinkedList; @@ -13,6 +11,7 @@ import java.util.List; import static org.junit.jupiter.api.Assertions.*; +@Tag("domain.model") class SubmissionTest { final Submission submission = new Submission( SubmissionType.OA_VERSIONING, diff --git a/src/test/java/fr/inra/oresing/domain/application/configuration/date/DatePatternTest.java b/src/test/java/fr/inra/oresing/domain/application/configuration/date/DatePatternTest.java index 10962c535236c448aafb9521cb2d130024653784..dd5c0b3cbd847c25a0aa35db7289e09c8099e7d2 100644 --- a/src/test/java/fr/inra/oresing/domain/application/configuration/date/DatePatternTest.java +++ b/src/test/java/fr/inra/oresing/domain/application/configuration/date/DatePatternTest.java @@ -10,7 +10,7 @@ import java.time.LocalDateTime; import java.time.LocalTime; import java.util.Objects; -@org.junit.jupiter.api.Tag("SUITE") +@org.junit.jupiter.api.Tag("domain.model") class DatePatternTest { public static final String DATE = "12/01/1925"; public static final String TIME = "12:23:56"; diff --git a/src/test/java/fr/inra/oresing/domain/checker/type/ReferenceTypeTest.java b/src/test/java/fr/inra/oresing/domain/checker/type/ReferenceTypeTest.java index d9a27bb45304d462320a1c274bab563874baf834..80dc060ce5017cb3c87e29bf45825fb2deddf382 100644 --- a/src/test/java/fr/inra/oresing/domain/checker/type/ReferenceTypeTest.java +++ b/src/test/java/fr/inra/oresing/domain/checker/type/ReferenceTypeTest.java @@ -15,6 +15,7 @@ import org.mockito.Mockito; import java.util.UUID; +@Tag("domain.checker") class ReferenceTypeTest { LineChecker.Transformer transformer; ImmutableMap<DataValue.LineIdentityColumnName, ImmutableSet<UUID>> referenceValues; diff --git a/src/test/java/fr/inra/oresing/domain/data/read/DataHeaderReaderTest.java b/src/test/java/fr/inra/oresing/domain/data/read/DataHeaderReaderTest.java index 17efa81b2e75597df6aab13291dcd8d2cd5ca3bd..b1867ba32b70c574e18ac7504b3312978415ae31 100644 --- a/src/test/java/fr/inra/oresing/domain/data/read/DataHeaderReaderTest.java +++ b/src/test/java/fr/inra/oresing/domain/data/read/DataHeaderReaderTest.java @@ -32,6 +32,7 @@ import java.util.Map; import java.util.stream.Collectors; @Tag("SUITE") +@Tag("domain.model") class DataHeaderReaderTest { Iterator<CSVRecord> lineIterator; DataHeaderReader reader; diff --git a/src/test/java/fr/inra/oresing/domain/groovy/GroovyExpressionTest.java b/src/test/java/fr/inra/oresing/domain/groovy/GroovyExpressionTest.java index d5c2119b30039b77b27367386e2b54233032ee52..2d44f518a7a996109d73a3587352fb5fab5003e5 100644 --- a/src/test/java/fr/inra/oresing/domain/groovy/GroovyExpressionTest.java +++ b/src/test/java/fr/inra/oresing/domain/groovy/GroovyExpressionTest.java @@ -17,7 +17,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; -@Tag("SUITE") +@Tag("domain.model") class GroovyExpressionTest { private Map<String, Object> context; diff --git a/src/test/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplayTest.java b/src/test/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplayTest.java index f388752fa5f04c7d5e9bce2bc6890d10e5b1608f..1e2c26eb431aa9abfe6d8401df005e259f9d9f9e 100644 --- a/src/test/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplayTest.java +++ b/src/test/java/fr/inra/oresing/domain/internationalization/InternationalizationDisplayTest.java @@ -5,7 +5,7 @@ import org.junit.jupiter.api.Test; import java.util.List; -@org.junit.jupiter.api.Tag("SUITE") +@org.junit.jupiter.api.Tag("domain.i18n") public class InternationalizationDisplayTest { final String pattern = "column 1 {column1} column 2 {column2} column 3 {column3} end"; diff --git a/src/test/java/fr/inra/oresing/domain/massimport/BuildFileHeaderTest.java b/src/test/java/fr/inra/oresing/domain/massimport/BuildFileHeaderTest.java index 32a14e1bbe8c82524fe425d5ca07b63dbc06e871..7b967bfba35a9e6896198f143f376c22e22c5ce3 100644 --- a/src/test/java/fr/inra/oresing/domain/massimport/BuildFileHeaderTest.java +++ b/src/test/java/fr/inra/oresing/domain/massimport/BuildFileHeaderTest.java @@ -5,6 +5,7 @@ import fr.inra.oresing.domain.ConfigurationBuiderTestBuilder; import fr.inra.oresing.domain.application.configuration.*; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.params.ParameterizedTest; import org.junit.jupiter.params.provider.ValueSource; import org.slf4j.Logger; @@ -15,6 +16,7 @@ import java.net.URL; import java.nio.charset.StandardCharsets; import java.util.function.Function; +@Tag("domain.model") public class BuildFileHeaderTest { private static final Logger log = LoggerFactory.getLogger(BuildFileHeaderTest.class); static final String RESOURCE_PATH = "fr/inra/oresing/domain/massimport/massimport.yaml"; diff --git a/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java b/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java index 8c129eb0f9bf92c9346a72fa5431d59f7ad83e84..5778b074042dcfd46ebc2e2fa2de088f7160e609 100644 --- a/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java +++ b/src/test/java/fr/inra/oresing/persistence/AuthenticationServiceTest.java @@ -45,13 +45,14 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.jsonPath; @ActiveProfiles("testmail") -@SpringBootTest(classes = {OreSiNg.class, OreSiNg.MailSenderForTest.class, TestDatabaseConfig.class}) +@SpringBootTest(classes = {OreSiNg.class, OreSiNg.MailSenderForTest.class, TestDatabaseConfig.class, OreSiNg.class, TestDatabaseConfig.class}) @TestPropertySource(locations = "classpath:/application-tests.properties") @AutoConfigureWebMvc @AutoConfigureMockMvc(print = MockMvcPrint.NONE) @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) @Tag("SUITE") +@Tag("core.auth") public class AuthenticationServiceTest { @Value("${spring.mail.from}") String mailFrom; diff --git a/src/test/java/fr/inra/oresing/persistence/data/read/bundle/FileContentTest.java b/src/test/java/fr/inra/oresing/persistence/data/read/bundle/FileContentTest.java index d0dd6935dff2db83e84db6730a228bd82fb979d7..2ae6fd8b5778b3131eab2d92c4ddf992db938c5e 100644 --- a/src/test/java/fr/inra/oresing/persistence/data/read/bundle/FileContentTest.java +++ b/src/test/java/fr/inra/oresing/persistence/data/read/bundle/FileContentTest.java @@ -5,6 +5,7 @@ import fr.inra.oresing.domain.application.configuration.Submission; import fr.inra.oresing.domain.application.configuration.SubmissionType; import org.assertj.core.api.AssertJProxySetup; import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.mockito.Mockito; @@ -14,6 +15,7 @@ import java.util.Optional; import static org.junit.jupiter.api.Assertions.*; +@Tag("domain.model") class FileContentTest { final Submission submission = new Submission( SubmissionType.OA_VERSIONING, diff --git a/src/test/java/fr/inra/oresing/persistence/index/AuthorizationIndexTest.java b/src/test/java/fr/inra/oresing/persistence/index/AuthorizationIndexTest.java index df59246407d0c435ef98a641d0f8041f5c424227..9861401daa90239f79f0de92b7016e430e45064d 100644 --- a/src/test/java/fr/inra/oresing/persistence/index/AuthorizationIndexTest.java +++ b/src/test/java/fr/inra/oresing/persistence/index/AuthorizationIndexTest.java @@ -18,6 +18,7 @@ import java.util.*; import static org.junit.jupiter.api.Assertions.assertEquals; +@org.junit.jupiter.api.Tag("core.auth") class AuthorizationIndexTest { private AuthorizationIndex authorizationIndex; diff --git a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java index 30b034e23cd56fc6d0c3f928b724ffcd4b6efa61..c22327b65ab4b3482e45a063f01f9b99fb9aaad4 100644 --- a/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java +++ b/src/test/java/fr/inra/oresing/rest/ApplicationConfigurationServiceTest.java @@ -16,7 +16,6 @@ import fr.inra.oresing.rest.services.ApplicationConfigurationService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.io.IOUtils; import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; @@ -47,6 +46,7 @@ import static org.junit.jupiter.api.Assertions.*; @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) @Slf4j @org.junit.jupiter.api.Tag("SUITE") +@org.junit.jupiter.api.Tag("core.config") public class ApplicationConfigurationServiceTest { public static final Map<String, List<ReactiveResult>> errors = new HashMap<>(); diff --git a/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java b/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java index a51eee54d13b2d573444185cf7d2cb8b2d9bcc03..9c3923f58458af6812b275a40b1f2d966e67f78b 100644 --- a/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/AuthorizationResourcesTest.java @@ -19,6 +19,7 @@ import org.hamcrest.core.IsEqual; import static org.junit.jupiter.api.Assertions.*; import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -53,6 +54,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @AutoConfigureMockMvc(print = MockMvcPrint.NONE) @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) @Slf4j +@Tag("core.auth") public class AuthorizationResourcesTest { @Autowired diff --git a/src/test/java/fr/inra/oresing/rest/MigrationTest.java b/src/test/java/fr/inra/oresing/rest/MigrationTest.java index 6612694fb3085c3b7ebce8c92b554754de8b1039..58d3b684c70391f4ae2d37d8101719ae291cc6bd 100644 --- a/src/test/java/fr/inra/oresing/rest/MigrationTest.java +++ b/src/test/java/fr/inra/oresing/rest/MigrationTest.java @@ -5,6 +5,7 @@ import fr.inra.oresing.TestDatabaseConfig; import lombok.extern.slf4j.Slf4j; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -25,12 +26,13 @@ import static org.springframework.test.web.servlet.request.MockMvcRequestBuilder import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @ActiveProfiles("testmail") +@Tag("integration.persistence") @SpringBootTest(classes = {OreSiNg.class, TestDatabaseConfig.class}) @TestPropertySource(locations = "classpath:/application-tests.properties") @AutoConfigureWebMvc @AutoConfigureMockMvc(print = MockMvcPrint.NONE) -@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) +@DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) @Slf4j public class MigrationTest { diff --git a/src/test/java/fr/inra/oresing/rest/MultiYamlTest.java b/src/test/java/fr/inra/oresing/rest/MultiYamlTest.java index 662994b3f77dff68d47d33eae023924e41265ddb..c0e6d38532034e0b3c1a95124a9a9552812089c5 100644 --- a/src/test/java/fr/inra/oresing/rest/MultiYamlTest.java +++ b/src/test/java/fr/inra/oresing/rest/MultiYamlTest.java @@ -12,7 +12,7 @@ import java.io.IOException; import java.io.InputStream; import java.util.Map; -@org.junit.jupiter.api.Tag("SUITE") +@org.junit.jupiter.api.Tag("core.basic") public class MultiYamlTest { @Test public void testYaml() throws IOException { diff --git a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java index 98a25f93b4217b110e17b41a47d486cec7c73fb5..e00c830905f46f3ed3d47829b3e4bbeb236814d4 100644 --- a/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java +++ b/src/test/java/fr/inra/oresing/rest/OreSiResourcesTest.java @@ -90,6 +90,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @AutoConfigureWebMvc @AutoConfigureMockMvc(print = MockMvcPrint.NONE) @DirtiesContext(classMode = DirtiesContext.ClassMode.BEFORE_EACH_TEST_METHOD) +@Tag("integration.rest") @Slf4j public class OreSiResourcesTest { @@ -168,7 +169,7 @@ public class OreSiResourcesTest { } @Test - @Tag("SUITE") + @Tag("core.basic") public void testDatabaseUser() throws SQLException { String currentUser = getCurrentDatabaseUser(); Assertions.assertEquals("openAdomTechUser", currentUser, "Le test devrait être exécuté en tant qu'openadomTechUser"); @@ -187,7 +188,7 @@ public class OreSiResourcesTest { @Test @Tag("SWAGGER_BUILD") - @Tag("SUITE") + @Tag("integration.rest") public void services_model() throws Exception { final String services_model = mockMvc.perform(get("/api-docs") .accept(MediaType.APPLICATION_JSON_VALUE) @@ -248,7 +249,7 @@ public class OreSiResourcesTest { @Test @Tag("OTHERS_TEST") - @Tag("SUITE") + @Tag("app.monsoere") @Tag("MONSOERE") public void addApplicationMonsore() throws Exception { final String appId; @@ -808,14 +809,14 @@ public class OreSiResourcesTest { @Test @Tag("OTHERS_TEST") - @Tag("SUITE") + @Tag("integration.rest") public void buildSwaggerApi() throws Exception { mockMvc.perform(get("/v2/api-docs")); } @Test @Tag("OTHERS_TEST") - @Tag("SUITE") + @Tag("domain.model") public void testMultiplicityMany() throws Exception { final URL resource = getClass().getResource(Fixtures.getMultiplicityMany()); try (final InputStream in = Objects.requireNonNull(resource).openStream()) { @@ -887,7 +888,7 @@ public class OreSiResourcesTest { } @Test - @Tag("OTHERS_TEST") + @Tag("core.config") @Disabled public void addApplicationWithComputedComponentsWithReferences() throws Exception { final URL resource = getClass().getResource(Fixtures.getApplicationWithComputedComponentsWithReferences()); @@ -950,7 +951,7 @@ public class OreSiResourcesTest { @Test @Tag("OTHERS_TEST") - @Tag("SUITE") + @Tag("app.monsoere") @Tag("MONSOERE") public void addApplicationMonsoreWithRepository() throws Exception { URL resource = getClass().getResource(Fixtures.getMonsoreApplicationConfigurationWithRepositoryResourceName()); @@ -1733,6 +1734,7 @@ public class OreSiResourcesTest { } @Test + @Tag("app.teledetection") @Disabled public void addApplicationTeledetection() throws Exception { final URL resource = getClass().getResource(Fixtures.getTeledetectionConfigurationResourceName()); @@ -1993,6 +1995,7 @@ public class OreSiResourcesTest { * The only authorizations that can be put on are on none or all values. */ @Test + @Tag("core.config") @Disabled public void testProgressiveYamlWithoutAuthorization() throws Exception { final String authorizationId; @@ -2099,6 +2102,7 @@ public class OreSiResourcesTest { @Test @Disabled + @Tag("core.config") public void testProgressiveYamlWithEmptyDatagroup() throws Exception { final URL resource = getClass().getResource(Fixtures.getProgressiveYaml().get("yamlWithEmptyDatagroup")); @@ -2121,6 +2125,7 @@ public class OreSiResourcesTest { */ @Test @Disabled + @Tag("core.config") public void testProgressiveYamlWithNoReference() throws Exception { final URL resource = getClass().getResource(Fixtures.getProgressiveYaml().get("testAuthorizationScopeWithoutReference")); @@ -2146,6 +2151,7 @@ public class OreSiResourcesTest { @Test @Disabled + @Tag("core.config") public void testProgressiveYamlWithoutAuthorizationScope() { final URL resource = getClass().getResource(Fixtures.getProgressiveYaml().get("testProgressiveYamlWithoutAuthorizationScope")); @@ -2165,6 +2171,7 @@ public class OreSiResourcesTest { @Test @Disabled + @Tag("core.config") public void testProgressiveYamlWithoutTimescopeScope() { final URL resource = getClass().getResource(Fixtures.getProgressiveYaml().get("testProgressiveYamlWithoutTimescopeScope")); @@ -2188,6 +2195,7 @@ public class OreSiResourcesTest { */ @Test @Disabled + @Tag("core.config") public void testProgressiveWithReferenceAndNoHierarchicalReferenceYaml() throws Exception { final URL resource = getClass().getResource(Fixtures.getProgressiveYaml().get("testAuthorizationScopeWithReferenceAndNoHierarchicalReference")); @@ -2242,8 +2250,7 @@ public class OreSiResourcesTest { @Test @Tag("SUITE") - - + @Tag("app.recursivity") public void testRecursivity() throws Exception { final URL resource = getClass().getResource(Fixtures.getRecursivityApplicationConfigurationResourceName()); @@ -2329,6 +2336,7 @@ public class OreSiResourcesTest { @Test @Tag("SUITE") + @Tag("app.pattern") public void testPattern() throws Exception { final URL resource = getClass().getResource(Fixtures.getPatternApplicationConfigurationResourceName()); @@ -2443,6 +2451,7 @@ public class OreSiResourcesTest { @Test @Tag("SUITE") + @Tag("core.config") public void testComputedWithNaturalKeyColumns() throws Exception { final URL resource = getClass().getResource(Fixtures.getComputedWithNaturalKeyColumns()); @@ -2539,7 +2548,7 @@ public class OreSiResourcesTest { } @Test - @Tag("ACBB_TEST") + @Tag("app.acbb") public void addApplicationAcbb() throws Exception { addUserRightCreateApplication(authUserId, "acbb"); final URL resource = getClass().getResource(Fixtures.getAcbbApplicationConfigurationResourceName()); @@ -2772,7 +2781,7 @@ public class OreSiResourcesTest { } @Test - @Tag("HAUTE_FREQUENCE_TEST") + @Tag("app.haute_frequence") @Disabled public void addApplicationHauteFrequence() throws Throwable { addUserRightCreateApplication(authUserId, "hautefrequence"); @@ -2803,7 +2812,7 @@ public class OreSiResourcesTest { } @Test - @Tag("OTHERS_TEST") + @Tag("domain.model") @Disabled public void addDuplicatedTest() throws Throwable { addUserRightCreateApplication(authUserId, "duplicated"); @@ -3056,7 +3065,7 @@ on test le dépôt d'un fichier récursif } @Test - @Tag("OTHERS_TEST") + @Tag("app.olac") @Disabled public void addApplicationOLAC() throws Exception { addUserRightCreateApplication(authUserId, "olac"); @@ -3151,7 +3160,7 @@ on test le dépôt d'un fichier récursif } @Test - @Tag("OTHERS_TEST") + @Tag("app.foret") @Disabled public void addApplicationFORET_essai() throws Exception { addUserRightCreateApplication(authUserId, "foret"); @@ -3201,7 +3210,7 @@ on test le dépôt d'un fichier récursif } @Test - @Tag("OTHERS_TEST") + @Tag("app.foret") @Disabled public void addApplicationFORET() throws Exception { addUserRightCreateApplication(authUserId, "foret"); @@ -3236,6 +3245,7 @@ on test le dépôt d'un fichier récursif @Test @Disabled("utile comme benchmark, ne vérifie rien") + @Tag("integration.persistence") public void benchmarkImportData() throws Exception { addApplicationAcbb(); try (final InputStream in = fixtures.openSwcDataResourceName(false)) { @@ -3252,6 +3262,7 @@ on test le dépôt d'un fichier récursif @Test @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) @Disabled + @Tag("integration.rest") public void testGetUploadBundle() throws Exception { URL resource = getClass().getResource(Fixtures.getMonsoreApplicationConfigurationWithRepositoryResourceName()); try (final InputStream in = Objects.requireNonNull(resource).openStream()) { diff --git a/src/test/java/fr/inra/oresing/rest/TestReferencesErrors.java b/src/test/java/fr/inra/oresing/rest/TestReferencesErrors.java index 31cb2f222a7b82eeed3b7bf2d5292c8abe387378..2147929f095fd30d93f9aa76acbef95df94a1cad 100644 --- a/src/test/java/fr/inra/oresing/rest/TestReferencesErrors.java +++ b/src/test/java/fr/inra/oresing/rest/TestReferencesErrors.java @@ -4,8 +4,10 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.jayway.jsonpath.JsonPath; import fr.inra.oresing.OreSiNg; import fr.inra.oresing.TestDatabaseConfig; +import fr.inra.oresing.persistence.AuthenticationFailure; import fr.inra.oresing.persistence.AuthenticationService; import fr.inra.oresing.persistence.JsonRowMapper; +import fr.inra.oresing.rest.model.authorization.LoginAdminResult; import lombok.extern.slf4j.Slf4j; import org.hamcrest.Matchers; import org.hamcrest.core.IsEqual; @@ -13,10 +15,7 @@ import org.hamcrest.core.IsNull; import static org.junit.jupiter.api.Assertions.*; -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.AfterAll; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.*; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; import org.springframework.beans.factory.annotation.Autowired; @@ -30,7 +29,6 @@ import org.springframework.test.annotation.DirtiesContext; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; import org.springframework.test.web.servlet.MockMvc; -import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.transaction.annotation.Transactional; @@ -57,6 +55,7 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. @AutoConfigureMockMvc(print = MockMvcPrint.NONE) @DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_EACH_TEST_METHOD) @Slf4j +@Tag("domain.model") public class TestReferencesErrors { public static final Map<String, String> responses = new HashMap<>(); @@ -73,7 +72,8 @@ public class TestReferencesErrors { @Autowired private NamedParameterJdbcTemplate namedParameterJdbcTemplate; private Cookie authCookie; - + private static CreateUserResult authUser = null; + private static UUID userId; @AfterAll public static void registerErrors() throws IOException { String errorsAsString = new ObjectMapper().writeValueAsString(responses); @@ -86,10 +86,22 @@ public class TestReferencesErrors { @BeforeEach public void createUser() throws Exception { - CreateUserResult authUser = authenticationService.createUser("poussin", "xxxxxxxx", "poussin@inrae.fr"); - final UUID userId = authUser.userId(); - setToActive(userId); - final CreateUserResult lambdaUser = authenticationService.createUser("lambda", "xxxxxxxx", "lamnda@inrae.fr"); + try { + authUser = authenticationService.createUser("poussin", "xxxxxxxx", "poussin@inrae.fr"); + userId = authUser.userId(); + setToActive(authUser.userId()); + } catch (AuthenticationFailure e) { + LoginAdminResult login = authenticationService.login("poussin", "xxxxxxxx"); + authUser = CreateUserResult.of(authenticationService.getByIdOrLogin(login.id().toString())); + userId = authUser.userId(); + setToActive(authUser.userId()); + log.info("L'utilisateur existe déjà .... login"); + } + try { + authenticationService.createUser("lambda", "xxxxxxxx", "lamnda@inrae.fr"); + } catch (AuthenticationFailure e) { + log.info("L'utilisateur existe déjà .... login"); + } authCookie = mockMvc.perform(post("/api/v1/login") .param("login", "poussin") .param("password", "xxxxxxxx")) @@ -120,17 +132,6 @@ public class TestReferencesErrors { namedParameterJdbcTemplate.update(sql, Map.of("id", userId)); } - @Transactional - void setToActive(final String login) { - String sql = """ - UPDATE public.oresiuser - SET accountstate = 'active' - WHERE login = :login - """; - - namedParameterJdbcTemplate.update(sql, Map.of("login", login)); - } - @Test public void testRecursivity() throws Exception { diff --git a/src/test/java/fr/inra/oresing/rest/model/authorization/CreateAuthorizationRequestTest.java b/src/test/java/fr/inra/oresing/rest/model/authorization/CreateAuthorizationRequestTest.java index 6be15e1d58d1b013e3e61ae3a713d48b57bb5985..e1d4cc4007d183ab329e98fe3989557528a53a32 100644 --- a/src/test/java/fr/inra/oresing/rest/model/authorization/CreateAuthorizationRequestTest.java +++ b/src/test/java/fr/inra/oresing/rest/model/authorization/CreateAuthorizationRequestTest.java @@ -16,7 +16,6 @@ import fr.inra.oresing.persistence.JsonRowMapper; import fr.inra.oresing.persistence.data.read.DataRepositoryWithBuffer; import fr.inra.oresing.rest.model.authorization.exception.AuthorizationRequestError; import fr.inra.oresing.rest.model.authorization.request.AuthorizationRequestBuilder; -import lombok.SneakyThrows; import org.json.JSONException; import org.junit.jupiter.api.*; import org.mockito.Mockito; @@ -29,7 +28,6 @@ import java.nio.charset.StandardCharsets; import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; -import java.util.stream.Stream; class CreateAuthorizationRequestTest { static String createAuthorization; @@ -41,7 +39,7 @@ class CreateAuthorizationRequestTest { } @Test - @Tag("SUITE") + @Tag("core.auth") void toAuthorizationRequest() throws IOException { CreateAuthorizationRequest createAuthorizationRequest1 = new CreateAuthorizationRequest( UUID.fromString("e7570009-35fb-489d-ad3b-5bb335e7c5d5"), diff --git a/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryAdvancedSearchTest.java b/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryAdvancedSearchTest.java index 85b4ec431b00bf541e5346cc4391d72ce153b8ee..64f74c465361222923c9488cf5e4ef979850a843 100644 --- a/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryAdvancedSearchTest.java +++ b/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryAdvancedSearchTest.java @@ -16,7 +16,7 @@ import java.util.stream.Stream; import static org.junit.jupiter.api.Assertions.*; -@Tag("MODEL_REQUEST_TEST") +@Tag("integration.persistence\n") class DownloadDatasetQueryAdvancedSearchTest { public static JsonRowMapper mapper; public static final Set<String> rowIds = Set.of("addf3698-88f2-43f9-8926-0b64a86f3678", "0aef7ed1-1df9-4fbf-a676-1932e87ced9d", "2c527cbe-3ed7-4883-b7d1-8f29eff99eb1"); diff --git a/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryTest.java b/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryTest.java index 883e74b7f9f89a6b1397419ba383fb887526f560..a2356a2459479fe21aea463e6fdce0378dec18c8 100644 --- a/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryTest.java +++ b/src/test/java/fr/inra/oresing/rest/model/data/DownloadDatasetQueryTest.java @@ -22,7 +22,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; -@Tag("MODEL_REQUEST_TEST") +@Tag("integration.persistence\n") @Disabled class DownloadDatasetQueryTest { final String simpleSearchJson = """ diff --git a/src/test/java/fr/inra/oresing/rest/services/RelationalServiceTest.java b/src/test/java/fr/inra/oresing/rest/services/RelationalServiceTest.java index a7dfa5b57974ed2d8bbfe154687cd570f8e882cf..77d9c781d2f36e6454d8364beedbf0c42765967b 100644 --- a/src/test/java/fr/inra/oresing/rest/services/RelationalServiceTest.java +++ b/src/test/java/fr/inra/oresing/rest/services/RelationalServiceTest.java @@ -8,6 +8,7 @@ import fr.inra.oresing.rest.OreSiResourcesTest; import fr.inra.oresing.rest.ViewStrategy; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Tag; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; @@ -66,6 +67,7 @@ public class RelationalServiceTest { @Test @Disabled + @Tag("integration.persistence\n") public void testCreateViews() { // request.setRequestClient(applicationCreatorRequestClient); final ImmutableSet<Fixtures.Application> applications = ImmutableSet