diff --git a/src/test/java/org/bonitasoft/web/client/BonitaClientIT.java b/src/test/java/org/bonitasoft/web/client/BonitaClientIT.java index 6639469b..2102f6aa 100644 --- a/src/test/java/org/bonitasoft/web/client/BonitaClientIT.java +++ b/src/test/java/org/bonitasoft/web/client/BonitaClientIT.java @@ -93,8 +93,11 @@ class BonitaClientIT { private static final int MAX_SEARCH_COUNT = 100; + private static final String BONITA_DOCKER_IMAGE = "bonitasoft.jfrog.io/docker-snapshots/bonita-community:10.2-SNAPSHOT"; + @Container - private static final BonitaContainer> BONITA_CONTAINER = new BonitaContainer<>(); + private static final BonitaContainer> BONITA_CONTAINER = new BonitaContainer<>( + BONITA_DOCKER_IMAGE); private BonitaClient bonitaClient; @@ -196,11 +199,12 @@ void organization_should_be_uploaded() throws Exception { } @Test - void applications_should_be_uploaded() throws Exception { + void legacy_applications_should_be_uploaded() throws Exception { // Given loggedInAsTechnicalUser(); final List applicationsBefore = bonitaClient.applications().searchApplications(0, MAX_SEARCH_COUNT); + var expectedAppTokens = List.of("MyApplication_Client_tests", "HR-dashboard_Client_tests"); // When File application = getClasspathFile("/application.xml"); @@ -216,7 +220,42 @@ void applications_should_be_uploaded() throws Exception { assertThat(applications) .as("Application names") .extracting(Application::getToken) - .contains("MyApplication_Client_tests", "HR-dashboard_Client_tests"); + .contains(expectedAppTokens.toArray(new String[0])); + assertThat(applications) + .as("Applications must not be advanced") + .filteredOn(app -> expectedAppTokens.contains(app.getToken())) + .extracting(Application::getAdvanced) + .containsExactly(false, false); + } + + @Test + void advanced_applications_should_be_uploaded() throws Exception { + // Given + loggedInAsTechnicalUser(); + final List applicationsBefore = bonitaClient.applications().searchApplications(0, + MAX_SEARCH_COUNT); + var expectedAppTokens = List.of("app1", "app2"); + + // When + File application = getClasspathFile("/advanced-application.xml"); + bonitaClient + .applications() + .importApplications(application, ApplicationImportPolicy.REPLACE_DUPLICATES); + + // Then + List applications = bonitaClient + .applications() + .searchApplications(new SearchApplicationsQueryParams().p(0).c(MAX_SEARCH_COUNT)); + assertThat(applications).isNotEmpty().hasSize(applicationsBefore.size() + 2); + assertThat(applications) + .as("Application names") + .extracting(Application::getToken) + .contains(expectedAppTokens.toArray(new String[0])); + assertThat(applications) + .as("Applications must be advanced") + .filteredOn(app -> expectedAppTokens.contains(app.getToken())) + .extracting(Application::getAdvanced) + .containsExactly(true, true); } @Test diff --git a/src/test/java/org/bonitasoft/web/client/services/impl/DefaultApplicationServiceTest.java b/src/test/java/org/bonitasoft/web/client/services/impl/DefaultApplicationServiceTest.java index 7e41aba8..677acd40 100644 --- a/src/test/java/org/bonitasoft/web/client/services/impl/DefaultApplicationServiceTest.java +++ b/src/test/java/org/bonitasoft/web/client/services/impl/DefaultApplicationServiceTest.java @@ -19,7 +19,6 @@ import static java.util.Arrays.asList; import static org.assertj.core.api.AssertionsForClassTypes.assertThat; import static org.mockito.ArgumentMatchers.any; -import static org.mockito.ArgumentMatchers.anyMap; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.doReturn; @@ -103,7 +102,8 @@ void import_application_replace_dups_should_first_delete() { applicationService.importApplications(dummyApps, ApplicationImportPolicy.REPLACE_DUPLICATES); // Then - verify(applicationApi, atLeast(fakeAppTokens.size())).searchApplications(anyMap()); + verify(applicationApi, atLeast(fakeAppTokens.size())) + .searchApplications(any(ApplicationApi.SearchApplicationsQueryParams.class)); verify(applicationService, times(fakeAppTokens.size())).silentDeleteApplication(anyString()); verify(applicationApi).uploadApplication(dummyApps); verify(applicationApi).importApplication(anyString(), captor.capture()); diff --git a/src/test/resources/advanced-application.xml b/src/test/resources/advanced-application.xml new file mode 100644 index 00000000..0cd95196 --- /dev/null +++ b/src/test/resources/advanced-application.xml @@ -0,0 +1,11 @@ + + + + Application 1 + Description of Application 1 + /app1.jpg + + + Application 2 + + diff --git a/src/test/resources/application.xml b/src/test/resources/application.xml index bf280065..93bfcdb7 100644 --- a/src/test/resources/application.xml +++ b/src/test/resources/application.xml @@ -1,5 +1,5 @@ + xmlns="http://documentation.bonitasoft.com/application-xml-schema/1.1">