From 008c00cb43ddac9c1275d9507f6aa545aed35f04 Mon Sep 17 00:00:00 2001 From: Lars Johansson <lars.johansson@ess.eu> Date: Thu, 26 Oct 2023 10:15:40 +0200 Subject: [PATCH] Add integration tests --- .../org/openepics/names/docker/NamesIT.java | 221 +++++++++++++++++- .../names/docker/StructuresDeviceGroupIT.java | 136 ++++++++++- .../names/docker/StructuresDeviceTypeIT.java | 136 ++++++++++- .../names/docker/StructuresDisciplineIT.java | 136 ++++++++++- .../names/docker/StructuresSubsystemIT.java | 136 ++++++++++- .../names/docker/StructuresSystemGroupIT.java | 138 ++++++++++- .../names/docker/StructuresSystemIT.java | 136 ++++++++++- 7 files changed, 969 insertions(+), 70 deletions(-) diff --git a/src/test/java/org/openepics/names/docker/NamesIT.java b/src/test/java/org/openepics/names/docker/NamesIT.java index 1096d981..343c7bde 100644 --- a/src/test/java/org/openepics/names/docker/NamesIT.java +++ b/src/test/java/org/openepics/names/docker/NamesIT.java @@ -20,6 +20,7 @@ package org.openepics.names.docker; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; @@ -234,6 +235,7 @@ class NamesIT { NameElementCommand nameElementCommand = null; NameElement createdNameElement = null; StructureElementCommandConfirm structureElementCommandConfirm = null; + ResponsePageNameElements response, response2 = null; nameElementCommand = new NameElementCommand( null, subsystemN1U1, deviceTypeRFA, "071", @@ -342,6 +344,97 @@ class NamesIT { ITUtilNames.assertRead("/legacy?name=%EMR%", 1); ITUtilNames.assertRead("/legacy?name=%FS%", 0); + // order by + response = ITUtilNames.assertRead("/legacy?orderBy=UUID&isAsc=true"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + response = ITUtilNames.assertRead("/legacy?orderBy=UUID&isAsc=false"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=UUID&isAsc=true"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + + response = ITUtilNames.assertRead("/legacy?orderBy=NAME&isAsc=true"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + response = ITUtilNames.assertRead("/legacy?orderBy=NAME&isAsc=false"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=NAME&isAsc=true"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + + response = ITUtilNames.assertRead("/legacy?orderBy=SYSTEMSTRUCTURE&isAsc=true"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=SYSTEMSTRUCTURE&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getSystemStructure(), response2.getList().get(response2.getList().size()-1).getSystemStructure()); + response = ITUtilNames.assertRead("/legacy?orderBy=SYSTEMSTRUCTURE&isAsc=false"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=SYSTEMSTRUCTURE&isAsc=true"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getSystemStructure(), response2.getList().get(response2.getList().size()-1).getSystemStructure()); + + response = ITUtilNames.assertRead("/legacy?orderBy=DEVICESTRUCTURE&isAsc=true"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=DEVICESTRUCTURE&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDeviceStructure(), response2.getList().get(response2.getList().size()-1).getDeviceStructure()); + response = ITUtilNames.assertRead("/legacy?orderBy=DEVICESTRUCTURE&isAsc=false"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=DEVICESTRUCTURE&isAsc=true"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDeviceStructure(), response2.getList().get(response2.getList().size()-1).getDeviceStructure()); + + response = ITUtilNames.assertRead("/legacy?orderBy=INDEX&isAsc=true"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=INDEX&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getIndex(), response2.getList().get(response2.getList().size()-1).getIndex()); + response = ITUtilNames.assertRead("/legacy?orderBy=INDEX&isAsc=false"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=INDEX&isAsc=true"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getIndex(), response2.getList().get(response2.getList().size()-1).getIndex()); + + response = ITUtilNames.assertRead("/legacy?orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + response = ITUtilNames.assertRead("/legacy?orderBy=DESCRIPTION&isAsc=false"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=DESCRIPTION&isAsc=true"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + + response = ITUtilNames.assertRead("/legacy?orderBy=WHEN&isAsc=true"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=WHEN&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + response = ITUtilNames.assertRead("/legacy?orderBy=WHEN&isAsc=false"); + response2 = ITUtilNames.assertRead("/legacy?orderBy=WHEN&isAsc=true"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + + // pagination + ITUtilNames.assertRead("/legacy?page=0&pageSize=1", 1); + ITUtilNames.assertRead("/legacy?page=1&pageSize=1", 1); + ITUtilNames.assertRead("/legacy?page=2&pageSize=1", 0); + + // order by, pagination + response = ITUtilNames.assertRead("/legacy?orderBy=WHEN&isAsc=true&page=0&pageSize=1", 1); + response2 = ITUtilNames.assertRead("/legacy?orderBy=WHEN&isAsc=false&page=1&pageSize=1", 1); + assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + response = ITUtilNames.assertRead("/legacy?orderBy=WHEN&isAsc=false&page=0&pageSize=1", 1); + response2 = ITUtilNames.assertRead("/legacy?orderBy=WHEN&isAsc=true&page=1&pageSize=1", 1); + assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + ITUtilNames.assertDelete(nameElementCommandConfirm); ITUtilNames.assertExists("RFQ-N1U1:EMR-RFA-071", Boolean.FALSE); @@ -1055,6 +1148,59 @@ class NamesIT { ITUtilNames.assertRead("?nameEquivalence=RFQ-10%&deviceStructure=EMR-FS", 8); + // order by + // avoid + // NAMEEQUIVALENCE - not of interest + response = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=UUID&isAsc=true"); + response2 = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=NAME&isAsc=true"); + response2 = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=SYSTEMSTRUCTURE&isAsc=true"); + response2 = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=SYSTEMSTRUCTURE&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getSystemStructure(), response2.getList().get(response2.getList().size()-1).getSystemStructure()); + assertEquals(response2.getList().get(0).getSystemStructure(), response.getList().get(response.getList().size()-1).getSystemStructure()); + + response = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=DEVICESTRUCTURE&isAsc=true"); + response2 = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=DEVICESTRUCTURE&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDeviceStructure(), response2.getList().get(response2.getList().size()-1).getDeviceStructure()); + assertEquals(response2.getList().get(0).getDeviceStructure(), response.getList().get(response.getList().size()-1).getDeviceStructure()); + + response = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=INDEX&isAsc=true"); + response2 = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=INDEX&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getIndex(), response2.getList().get(response2.getList().size()-1).getIndex()); + assertEquals(response2.getList().get(0).getIndex(), response.getList().get(response.getList().size()-1).getIndex()); + + response = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=WHEN&isAsc=true"); + response2 = ITUtilNames.assertRead("?deviceStructure=EMR-FS&orderBy=WHEN&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getWhen().toString(), response2.getList().get(response2.getList().size()-1).getWhen().toString()); + assertEquals(response2.getList().get(0).getWhen().toString(), response.getList().get(response.getList().size()-1).getWhen().toString()); + + // pagination ITUtilNames.assertRead("?deviceStructure=EMR-FS&page=0&pageSize=100", 8); ITUtilNames.assertRead("?deviceStructure=EMR-FS&page=1&pageSize=100", 0); ITUtilNames.assertRead("?deviceStructure=EMR-FS&page=0&pageSize=8", 8); @@ -1064,11 +1210,12 @@ class NamesIT { ITUtilNames.assertRead("?deviceStructure=EMR-FS&page=2&pageSize=3", 2); ITUtilNames.assertRead("?deviceStructure=EMR-FS&page=3&pageSize=3", 0); - response = ITUtilNames.assertRead("?index=00_&page=0&pageSize=3&orderBy=WHEN&isAsc=true", 3); - response2 = ITUtilNames.assertRead("?index=00_&page=2&pageSize=3&orderBy=WHEN&isAsc=false", 2); + // order by, pagination + response = ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=true&page=0&pageSize=3", 3); + response2 = ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=false&page=2&pageSize=3", 2); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); - response = ITUtilNames.assertRead("?index=00_&page=0&pageSize=3&orderBy=WHEN&isAsc=false", 3); - response2 = ITUtilNames.assertRead("?index=00_&page=2&pageSize=3&orderBy=WHEN&isAsc=true", 2); + response = ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=false&page=0&pageSize=3", 3); + response2 = ITUtilNames.assertRead("?index=00_&orderBy=WHEN&isAsc=true&page=2&pageSize=3", 2); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); // uuid or name @@ -1120,6 +1267,59 @@ class NamesIT { ITUtilHistory.assertHistoryNames("?description=updated description%", 3, -1); ITUtilHistory.assertHistoryNames("?who=test%", 17, -1); + // order by + // avoid + // NAMEEQUIVALENCE - not of interest + response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=UUID&isAsc=true"); + response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=NAME&isAsc=true"); + response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=SYSTEMSTRUCTURE&isAsc=true"); + response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=SYSTEMSTRUCTURE&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getSystemStructure(), response2.getList().get(response2.getList().size()-1).getSystemStructure()); + assertEquals(response2.getList().get(0).getSystemStructure(), response.getList().get(response.getList().size()-1).getSystemStructure()); + + response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=DEVICESTRUCTURE&isAsc=true"); + response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=DEVICESTRUCTURE&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDeviceStructure(), response2.getList().get(response2.getList().size()-1).getDeviceStructure()); + assertEquals(response2.getList().get(0).getDeviceStructure(), response.getList().get(response.getList().size()-1).getDeviceStructure()); + + response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=INDEX&isAsc=true"); + response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=INDEX&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getIndex(), response2.getList().get(response2.getList().size()-1).getIndex()); + assertEquals(response2.getList().get(0).getIndex(), response.getList().get(response.getList().size()-1).getIndex()); + + response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=WHEN&isAsc=true"); + response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=WHEN&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getWhen().toString(), response2.getList().get(response2.getList().size()-1).getWhen().toString()); + assertEquals(response2.getList().get(0).getWhen().toString(), response.getList().get(response.getList().size()-1).getWhen().toString()); + + // pagination ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&page=0&pageSize=100", 12); ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&page=1&pageSize=100", 0); ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&page=0&pageSize=12", 12); @@ -1129,12 +1329,13 @@ class NamesIT { ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&page=2&pageSize=5", 2); ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&page=3&pageSize=5", 0); - response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&page=0&pageSize=5&orderBy=WHEN&isAsc=true", 5); - response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&page=2&pageSize=5&orderBy=WHEN&isAsc=false", 2); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); - response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&page=0&pageSize=5&orderBy=WHEN&isAsc=false", 5); - response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&page=2&pageSize=5&orderBy=WHEN&isAsc=true", 2); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + // order by, pagination + response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=WHEN&isAsc=true&page=0&pageSize=5", 5); + response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=WHEN&isAsc=false&page=2&pageSize=5", 2); + assertEquals(response.getList().get(0).getWhen().toString(), response2.getList().get(response2.getList().size()-1).getWhen().toString()); + response = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=WHEN&isAsc=false&page=0&pageSize=5", 5); + response2 = ITUtilHistory.assertHistoryNames("?deviceStructure=EMR-FS&orderBy=WHEN&isAsc=true&page=2&pageSize=5", 2); + assertEquals(response.getList().get(0).getWhen().toString(), response2.getList().get(response2.getList().size()-1).getWhen().toString()); } catch (Exception e) { fail(); } diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java index 8faf1512..76d86d98 100644 --- a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java +++ b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java @@ -20,6 +20,7 @@ package org.openepics.names.docker; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import java.net.HttpURLConnection; @@ -1993,6 +1994,55 @@ class StructuresDeviceGroupIT { ITUtilStructures.assertRead("/DEVICEGROUP?who=asdf", 0); ITUtilStructures.assertRead("/DEVICEGROUP?who=%asdf%", 0); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=UUID&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=NAME&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=WHEN&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICEGROUP?name=name&orderBy=WHEN&isAsc=false"); + String value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + String value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + String value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + String value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&page=0&pageSize=100", 30); ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&page=1&pageSize=100", 0); ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&page=0&pageSize=30", 30); @@ -2002,16 +2052,18 @@ class StructuresDeviceGroupIT { ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&page=2&pageSize=12", 6); ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&page=3&pageSize=12", 0); + // pagination ITUtilStructures.assertRead("/DEVICEGROUP?statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2&page=0&pageSize=12", 12); ITUtilStructures.assertRead("/DEVICEGROUP?statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2&page=1&pageSize=12", 12); ITUtilStructures.assertRead("/DEVICEGROUP?statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2&page=2&pageSize=12", 1); ITUtilStructures.assertRead("/DEVICEGROUP?statuses=PENDING&statuses=APPROVED&mnemonicPath=Di2&page=3&pageSize=12", 0); - response = ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&page=0&pageSize=12&orderBy=WHEN&isAsc=true", 12); - response2 = ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&page=2&pageSize=12&orderBy=WHEN&isAsc=false", 6); + // order by, pagination + response = ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&orderBy=WHEN&isAsc=true&page=0&pageSize=12", 12); + response2 = ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&orderBy=WHEN&isAsc=false&page=2&pageSize=12", 6); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); - response = ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&page=0&pageSize=12&orderBy=WHEN&isAsc=false", 12); - response2 = ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&page=2&pageSize=12&orderBy=WHEN&isAsc=true", 6); + response = ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&orderBy=WHEN&isAsc=false&page=0&pageSize=12", 12); + response2 = ITUtilStructures.assertRead("/DEVICEGROUP?mnemonicPath=Di2&orderBy=WHEN&isAsc=true&page=2&pageSize=12", 6); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); // type and uuid @@ -2063,6 +2115,55 @@ class StructuresDeviceGroupIT { ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%", 40); ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&who=%wh%", 100, -1); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=UUID&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=NAME&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=WHEN&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=WHEN&isAsc=false"); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&page=0&pageSize=100", 40); ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&page=1&pageSize=100", 0); ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&page=0&pageSize=40", 40); @@ -2072,12 +2173,27 @@ class StructuresDeviceGroupIT { ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&page=2&pageSize=15", 10); ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&page=3&pageSize=15", 0); - ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&page=0&pageSize=15&orderBy=WHEN&isAsc=true", 15); - ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&page=2&pageSize=15&orderBy=WHEN&isAsc=false", 10); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); - ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&page=0&pageSize=15&orderBy=WHEN&isAsc=false", 15); - ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&page=2&pageSize=15&orderBy=WHEN&isAsc=true", 10); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + // order by, pagination + ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=WHEN&isAsc=true&page=0&pageSize=15", 15); + ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=WHEN&isAsc=false&page=2&pageSize=15", 10); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); + ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=WHEN&isAsc=false&page=0&pageSize=15", 15); + ITUtilHistory.assertHistoryStructures("?type=DEVICEGROUP&description=%other%&orderBy=WHEN&isAsc=true&page=2&pageSize=15", 10); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); ITUtilStructures.assertExists(Type.DEVICEGROUP, "Di2", Boolean.FALSE); } catch (Exception e) { diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java index 27b7a4fc..606e4df1 100644 --- a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java +++ b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java @@ -20,6 +20,7 @@ package org.openepics.names.docker; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import java.net.HttpURLConnection; @@ -2002,6 +2003,55 @@ class StructuresDeviceTypeIT { ITUtilStructures.assertRead("/DEVICETYPE?who=asdf", 0); ITUtilStructures.assertRead("/DEVICETYPE?who=%asdf%", 0); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=AF_&orderBy=WHEN&isAsc=false"); + String value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + String value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + String value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + String value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&page=0&pageSize=100", 45); ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&page=1&pageSize=100", 0); ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&page=0&pageSize=45", 45); @@ -2011,16 +2061,18 @@ class StructuresDeviceTypeIT { ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&page=2&pageSize=20", 5); ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&page=3&pageSize=20", 0); + // pagination ITUtilStructures.assertRead("/DEVICETYPE?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=12", 12); ITUtilStructures.assertRead("/DEVICETYPE?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=12", 12); ITUtilStructures.assertRead("/DEVICETYPE?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=12", 6); ITUtilStructures.assertRead("/DEVICETYPE?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=12", 0); - response = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=true", 20); - response2 = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=false", 5); + // order by, pagination + response = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); - response = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=false", 20); - response2 = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=true", 5); + response = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/DEVICETYPE?mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); // type and uuid @@ -2084,6 +2136,55 @@ class StructuresDeviceTypeIT { ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&description=%other%", 40); ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&who=%wh%", 100, -1); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=WHEN&isAsc=false"); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&page=0&pageSize=100", 20); ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&page=1&pageSize=100", 0); ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&page=0&pageSize=20", 20); @@ -2093,12 +2194,27 @@ class StructuresDeviceTypeIT { ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&page=2&pageSize=8", 4); ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&page=3&pageSize=8", 0); - ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=true", 8); - ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=false", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); - ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=false", 8); - ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=true", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + // order by, pagination + ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); + ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=DEVICETYPE&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AA1", Boolean.TRUE); ITUtilStructures.assertExists(Type.DEVICETYPE, "Di-AA2", Boolean.TRUE); diff --git a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java index f71458df..2cbbf0c7 100644 --- a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java +++ b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java @@ -20,6 +20,7 @@ package org.openepics.names.docker; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import java.net.HttpURLConnection; @@ -1898,6 +1899,55 @@ class StructuresDisciplineIT { ITUtilStructures.assertRead("/DISCIPLINE?who=asdf", 0); ITUtilStructures.assertRead("/DISCIPLINE?who=%asdf%", 0); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=AF_&orderBy=WHEN&isAsc=false"); + String value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + String value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + String value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + String value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&page=0&pageSize=100", 45); ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&page=1&pageSize=100", 0); ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&page=0&pageSize=45", 45); @@ -1907,16 +1957,18 @@ class StructuresDisciplineIT { ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&page=2&pageSize=20", 5); ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&page=3&pageSize=20", 0); + // pagination ITUtilStructures.assertRead("/DISCIPLINE?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=12", 12); ITUtilStructures.assertRead("/DISCIPLINE?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=12", 12); ITUtilStructures.assertRead("/DISCIPLINE?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=12", 6); ITUtilStructures.assertRead("/DISCIPLINE?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=12", 0); - response = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=true", 20); - response2 = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=false", 5); + // order by, pagination + response = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); - response = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=false", 20); - response2 = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=true", 5); + response = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/DISCIPLINE?mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); // type and uuid @@ -1962,6 +2014,55 @@ class StructuresDisciplineIT { ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&description=%other%", 40); ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&who=%wh%", 100, -1); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=WHEN&isAsc=false"); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&page=0&pageSize=100", 20); ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&page=1&pageSize=100", 0); ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&page=0&pageSize=20", 20); @@ -1971,12 +2072,27 @@ class StructuresDisciplineIT { ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&page=2&pageSize=8", 4); ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&page=3&pageSize=8", 0); - ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=true", 8); - ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=false", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); - ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=false", 8); - ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=true", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + // order by, pagination + ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); + ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=DISCIPLINE&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); ITUtilStructures.assertExists(Type.DISCIPLINE, "AA1", Boolean.TRUE); ITUtilStructures.assertExists(Type.DISCIPLINE, "AA2", Boolean.TRUE); diff --git a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java index 06343408..9341827a 100644 --- a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java +++ b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java @@ -20,6 +20,7 @@ package org.openepics.names.docker; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import java.net.HttpURLConnection; @@ -2050,6 +2051,55 @@ class StructuresSubsystemIT { ITUtilStructures.assertRead("/SUBSYSTEM?who=asdf", 0); ITUtilStructures.assertRead("/SUBSYSTEM?who=%asdf%", 0); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=AF_&orderBy=WHEN&isAsc=false"); + String value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + String value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + String value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + String value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&page=0&pageSize=100", 45); ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&page=1&pageSize=100", 0); ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&page=0&pageSize=45", 45); @@ -2059,16 +2109,18 @@ class StructuresSubsystemIT { ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&page=2&pageSize=20", 5); ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&page=3&pageSize=20", 0); + // pagination ITUtilStructures.assertRead("/SUBSYSTEM?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=12", 12); ITUtilStructures.assertRead("/SUBSYSTEM?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=12", 12); ITUtilStructures.assertRead("/SUBSYSTEM?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=12", 6); ITUtilStructures.assertRead("/SUBSYSTEM?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=12", 0); - response = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=true", 20); - response2 = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=false", 5); + // order by, pagination + response = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); - response = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=false", 20); - response2 = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=true", 5); + response = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/SUBSYSTEM?mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); // type and uuid @@ -2142,6 +2194,55 @@ class StructuresSubsystemIT { ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&description=%other%", 40); ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&who=%wh%", 100, -1); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=false"); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&page=0&pageSize=100", 20); ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&page=1&pageSize=100", 0); ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&page=0&pageSize=20", 20); @@ -2151,12 +2252,27 @@ class StructuresSubsystemIT { ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&page=2&pageSize=8", 4); ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&page=3&pageSize=8", 0); - ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=true", 8); - ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=false", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); - ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=false", 8); - ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=true", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + // order by, pagination + ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); + ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=SUBSYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AA1", Boolean.TRUE); ITUtilStructures.assertExists(Type.SUBSYSTEM, "Sys-AA2", Boolean.TRUE); diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java index 0d4b5e2e..5ea922b5 100644 --- a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java +++ b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java @@ -21,6 +21,7 @@ package org.openepics.names.docker; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import java.net.HttpURLConnection; @@ -1960,6 +1961,56 @@ class StructuresSystemGroupIT { ITUtilStructures.assertRead("/SYSTEMGROUP?who=asdf", 0); ITUtilStructures.assertRead("/SYSTEMGROUP?who=%asdf%", 0); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // may be unavailable for SYSTEMGROUP + // use with care + // WHEN - different for requested/processed + response = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=AF_&orderBy=WHEN&isAsc=false"); + String value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + String value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + String value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + String value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&page=0&pageSize=100", 45); ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&page=1&pageSize=100", 0); ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&page=0&pageSize=45", 45); @@ -1969,16 +2020,18 @@ class StructuresSystemGroupIT { ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&page=2&pageSize=20", 5); ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&page=3&pageSize=20", 0); + // pagination ITUtilStructures.assertRead("/SYSTEMGROUP?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=12", 12); ITUtilStructures.assertRead("/SYSTEMGROUP?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=12", 12); ITUtilStructures.assertRead("/SYSTEMGROUP?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=12", 6); ITUtilStructures.assertRead("/SYSTEMGROUP?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=12", 0); - response = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=true", 20); - response2 = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=false", 5); + // order by, pagination + response = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); - response = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=false", 20); - response2 = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=true", 5); + response = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/SYSTEMGROUP?mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); // type and uuid @@ -2024,6 +2077,56 @@ class StructuresSystemGroupIT { ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&description=%other%", 40); ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&who=%wh%", 100, -1); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // may be unavailable for SYSTEMGROUP + // use with care + // WHEN - different for requested/processed + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=WHEN&isAsc=false"); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&page=0&pageSize=100", 20); ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&page=1&pageSize=100", 0); ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&page=0&pageSize=20", 20); @@ -2033,12 +2136,27 @@ class StructuresSystemGroupIT { ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&page=2&pageSize=8", 4); ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&page=3&pageSize=8", 0); - ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=true", 8); - ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=false", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); - ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=false", 8); - ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=true", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + // order by, pagination + ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); + ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=SYSTEMGROUP&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen().toString(); + value1 = response.getList().get(1).getWhen().toString(); + value2 = response2.getList().get(response2.getList().size()-2).getWhen().toString(); + value3 = response2.getList().get(response2.getList().size()-1).getWhen().toString(); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AA1", Boolean.TRUE); ITUtilStructures.assertExists(Type.SYSTEMGROUP, "AA2", Boolean.TRUE); diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java index 2747fdaf..48ccdc8a 100644 --- a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java +++ b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java @@ -20,6 +20,7 @@ package org.openepics.names.docker; import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; import static org.junit.jupiter.api.Assertions.fail; import java.net.HttpURLConnection; @@ -1982,6 +1983,55 @@ class StructuresSystemIT { ITUtilStructures.assertRead("/SYSTEM?who=asdf", 0); ITUtilStructures.assertRead("/SYSTEM?who=%asdf%", 0); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilStructures.assertRead("/SYSTEM?mnemonic=AF_&orderBy=WHEN&isAsc=false"); + String value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + String value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + String value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + String value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&page=0&pageSize=100", 45); ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&page=1&pageSize=100", 0); ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&page=0&pageSize=45", 45); @@ -1991,16 +2041,18 @@ class StructuresSystemIT { ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&page=2&pageSize=20", 5); ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&page=3&pageSize=20", 0); + // pagination ITUtilStructures.assertRead("/SYSTEM?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=0&pageSize=12", 12); ITUtilStructures.assertRead("/SYSTEM?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=1&pageSize=12", 12); ITUtilStructures.assertRead("/SYSTEM?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=2&pageSize=12", 6); ITUtilStructures.assertRead("/SYSTEM?statuses=PENDING&statuses=APPROVED&mnemonic=A__&page=3&pageSize=12", 0); - response = ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=true", 20); - response2 = ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=false", 5); + // order by, pagination + response = ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&orderBy=WHEN&isAsc=true&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&orderBy=WHEN&isAsc=false&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); - response = ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&page=0&pageSize=20&orderBy=WHEN&isAsc=false", 20); - response2 = ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&page=2&pageSize=20&orderBy=WHEN&isAsc=true", 5); + response = ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&orderBy=WHEN&isAsc=false&page=0&pageSize=20", 20); + response2 = ITUtilStructures.assertRead("/SYSTEM?mnemonic=A__&orderBy=WHEN&isAsc=true&page=2&pageSize=20", 5); assertEquals(response.getList().get(0), response2.getList().get(response2.getList().size()-1)); // type and uuid @@ -2055,6 +2107,55 @@ class StructuresSystemIT { ITUtilHistory.assertHistoryStructures("?type=SYSTEM&description=%other%", 40); ITUtilHistory.assertHistoryStructures("?type=SYSTEM&who=%wh%", 100, -1); + // order by + // avoid + // PARENT - ambiguous, order on which parent field? uuid/name/mnemonic/... + // MNEMONICEQUIVALENCE - not of interest + // MNEMONICPATH - different for requested/processed, not set for PENDING, ambiguous/not set for HISTORY + // use with care + // WHEN - different for requested/processed + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=UUID&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=UUID&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getUuid(), response2.getList().get(response2.getList().size()-1).getUuid()); + assertEquals(response2.getList().get(0).getUuid(), response.getList().get(response.getList().size()-1).getUuid()); + + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=NAME&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=NAME&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getName(), response2.getList().get(response2.getList().size()-1).getName()); + assertEquals(response2.getList().get(0).getName(), response.getList().get(response.getList().size()-1).getName()); + + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=MNEMONIC&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=MNEMONIC&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getMnemonic(), response2.getList().get(response2.getList().size()-1).getMnemonic()); + assertEquals(response2.getList().get(0).getMnemonic(), response.getList().get(response.getList().size()-1).getMnemonic()); + + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=DESCRIPTION&isAsc=false"); + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertEquals(response.getList().get(0).getDescription(), response2.getList().get(response2.getList().size()-1).getDescription()); + assertEquals(response2.getList().get(0).getDescription(), response.getList().get(response.getList().size()-1).getDescription()); + + response = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=true"); + response2 = ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=false"); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(response.getList().size() > 0); + assertEquals(response.getList().size(), response2.getList().size()); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); + + // pagination ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&page=0&pageSize=100", 20); ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&page=1&pageSize=100", 0); ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&page=0&pageSize=20", 20); @@ -2064,12 +2165,27 @@ class StructuresSystemIT { ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&page=2&pageSize=8", 4); ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&page=3&pageSize=8", 0); - ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=true", 8); - ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=false", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); - ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&page=0&pageSize=8&orderBy=WHEN&isAsc=false", 8); - ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&page=2&pageSize=8&orderBy=WHEN&isAsc=true", 4); - assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen()); + // order by, pagination + ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen() != null ? response.getList().get(0).getWhen().toString() : null; + value1 = response.getList().get(1).getWhen() != null ? response.getList().get(1).getWhen().toString() : null; + value2 = response2.getList().get(response2.getList().size()-2).getWhen() != null ? response2.getList().get(response2.getList().size()-2).getWhen().toString() : null; + value3 = response2.getList().get(response2.getList().size()-1).getWhen() != null ? response2.getList().get(response2.getList().size()-1).getWhen().toString() : null; + assertTrue(value0 != null && (value0.equals(value2) || value0.equals(value3)) + || value1 != null && (value1.equals(value2) || value1.equals(value3))); + assertTrue(value3 != null && (value3.equals(value0) || value3.equals(value1)) + || value2 != null && (value2.equals(value0) || value2.equals(value2))); + ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=false&page=0&pageSize=8", 8); + ITUtilHistory.assertHistoryStructures("?type=SYSTEM&mnemonic=AF_&orderBy=WHEN&isAsc=true&page=2&pageSize=8", 4); + value0 = response.getList().get(0).getWhen().toString(); + value1 = response.getList().get(1).getWhen().toString(); + value2 = response2.getList().get(response2.getList().size()-2).getWhen().toString(); + value3 = response2.getList().get(response2.getList().size()-1).getWhen().toString(); + assertTrue(value0 != null && (StringUtils.equals(value0, value2) || StringUtils.equals(value0, value3)) + || value1 != null && (StringUtils.equals(value1, value2) || StringUtils.equals(value1, value3))); + assertTrue(value3 != null && (StringUtils.equals(value3, value0) || StringUtils.equals(value3, value1)) + || value2 != null && (StringUtils.equals(value2, value0) || StringUtils.equals(value2, value1))); ITUtilStructures.assertExists(Type.SYSTEM, "AA1", Boolean.TRUE); ITUtilStructures.assertExists(Type.SYSTEM, "AA2", Boolean.TRUE); -- GitLab