Skip to content

Commit

Permalink
test(bonita-client): add use case on advanced applications
Browse files Browse the repository at this point in the history
Also update testcontainers config to use Bonita docker image from JFrog
  • Loading branch information
akantcheff authored and rbioteau committed Jun 25, 2024
1 parent e1ee2d0 commit 04c2680
Show file tree
Hide file tree
Showing 4 changed files with 56 additions and 6 deletions.
45 changes: 42 additions & 3 deletions src/test/java/org/bonitasoft/web/client/BonitaClientIT.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<? extends BonitaContainer<?>> BONITA_CONTAINER = new BonitaContainer<>();
private static final BonitaContainer<? extends BonitaContainer<?>> BONITA_CONTAINER = new BonitaContainer<>(
BONITA_DOCKER_IMAGE);

private BonitaClient bonitaClient;

Expand Down Expand Up @@ -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<Application> 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");
Expand All @@ -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<Application> 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<Application> 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down Expand Up @@ -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());
Expand Down
11 changes: 11 additions & 0 deletions src/test/resources/advanced-application.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<applications xmlns="http://documentation.bonitasoft.com/application-xml-schema/1.1">
<advancedApplication token="app1" version="1.0" profile="User" state="ACTIVATED">
<displayName>Application 1</displayName>
<description>Description of Application 1</description>
<iconPath>/app1.jpg</iconPath>
</advancedApplication>
<advancedApplication token="app2" version="1.1" state="DEACTIVATED">
<displayName>Application 2</displayName>
</advancedApplication>
</applications>
2 changes: 1 addition & 1 deletion src/test/resources/application.xml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
<applications
xmlns="http://documentation.bonitasoft.com/application-xml-schema/1.0">
xmlns="http://documentation.bonitasoft.com/application-xml-schema/1.1">
<application profile="User" state="ACTIVATED"
token="HR-dashboard_Client_tests" version="2.0"
homePage="my-new-custom-page"
Expand Down

0 comments on commit 04c2680

Please sign in to comment.