From 6b5adb1773240c2926103ea70f8fd1f9b672e8bb Mon Sep 17 00:00:00 2001
From: Lars Johansson <lars.johansson@ess.eu>
Date: Wed, 3 Jan 2024 10:20:23 +0100
Subject: [PATCH] Refactor integration tests

---
 .../names/docker/StructuresDeviceGroupIT.java | 373 +++++-------------
 .../names/docker/StructuresDeviceTypeIT.java  | 373 +++++-------------
 .../names/docker/StructuresDisciplineIT.java  | 373 +++++-------------
 .../names/docker/StructuresSubsystemIT.java   | 373 +++++-------------
 .../names/docker/StructuresSystemGroupIT.java | 373 +++++-------------
 .../names/docker/StructuresSystemIT.java      | 373 +++++-------------
 6 files changed, 612 insertions(+), 1626 deletions(-)

diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
index c217b8a0..bd1dd1fa 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceGroupIT.java
@@ -1653,286 +1653,117 @@ class StructuresDeviceGroupIT {
         // note
         //     create (and more) to read (with content)
         //     querying for Status.APPROVED means latest approved
+        //     multiple commands at same time may have effects on order by (when)
+
+        StructureElementCommandCreate[] structureElementCommandsCreate = null;
+        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
+        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
+        StructureElement[] approvedStructureElements = null;
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement = null;
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
+        // create + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid = approvedStructureElements[0].getUuid();
+
+        // create + cancel
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment")
+        };
+        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+
+        // create + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+        };
+        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+
+        // create
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment")
+        };
+        ITUtilStructures.assertCreate(structureElementCommandsCreate);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
         String description3 = "more description";
         String comment3 = "more comment";
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICEGROUP, discipline2Uuid,
-                "name", null,
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
+        // create + approve
+        // update + approve
+        // update + approve
+        // delete + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid2 = approvedStructureElements[0].getUuid();
+
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+            structureElementCommandUpdate.setComment(comment2);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description3);
+            structureElementCommandUpdate.setComment(comment3);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICEGROUP, discipline2Uuid, "name", null, "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // 60 device group entries
 
@@ -2079,10 +1910,10 @@ class StructuresDeviceGroupIT {
             // 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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
             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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
             // type and uuid
             //     /{type}/{uuid}
diff --git a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
index e5b626b0..7328d4b6 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDeviceTypeIT.java
@@ -1661,286 +1661,117 @@ class StructuresDeviceTypeIT {
         // note
         //     create (and more) to read (with content)
         //     querying for Status.APPROVED means latest approved
+        //     multiple commands at same time may have effects on order by (when)
+
+        StructureElementCommandCreate[] structureElementCommandsCreate = null;
+        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
+        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
+        StructureElement[] approvedStructureElements = null;
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement = null;
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AA1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AA2",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AA3",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AA4",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AA5",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AB1",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AB2",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AB3",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AB4",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AB5",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AC1",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AC2",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AC3",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AC4",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AC5",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AD1",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AD2",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AD3",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AD4",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AD5",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
+        // create + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AA1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AA2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AA3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AA4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AA5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid = approvedStructureElements[0].getUuid();
+
+        // create + cancel
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AB1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AB2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AB3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AB4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AB5", "description", "comment")
+        };
+        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+
+        // create + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AC1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AC2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AC3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AC4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AC5", "description", "comment")
+        };
+        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+
+        // create
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AD1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AD2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AD3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AD4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AD5", "description", "comment")
+        };
+        ITUtilStructures.assertCreate(structureElementCommandsCreate);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
         String description3 = "more description";
         String comment3 = "more comment";
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AE1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AE2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AE3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AE4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AE5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AF1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AF1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AF3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AF4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AF5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AG1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AG2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AG3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AG4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DEVICETYPE, deviceGroupUuid,
-                "name", "AG5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
+        // create + approve
+        // update + approve
+        // update + approve
+        // delete + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AE1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AE2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AE3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AE4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AE5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid2 = approvedStructureElements[0].getUuid();
+
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+            structureElementCommandUpdate.setComment(comment2);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description3);
+            structureElementCommandUpdate.setComment(comment3);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AF1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AF2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AF3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AF4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AF5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AG1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AG2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AG3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AG4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DEVICETYPE, deviceGroupUuid, "name", "AG5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // 60 device type entries
 
@@ -2088,10 +1919,10 @@ class StructuresDeviceTypeIT {
             // 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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
             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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
             // type and uuid
             //     /{type}/{uuid}
diff --git a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
index 69649d3c..2e0e7884 100644
--- a/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresDisciplineIT.java
@@ -1534,287 +1534,118 @@ class StructuresDisciplineIT {
         // note
         //     create (and more) to read (with content)
         //     querying for Status.APPROVED means latest approved
+        //     multiple commands at same time may have effects on order by (when)
+
+        StructureElementCommandCreate[] structureElementCommandsCreate = null;
+        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
+        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
+        StructureElement[] approvedStructureElements = null;
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement = null;
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
         UUID uuidRandom = UUID.randomUUID();
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AA1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AA2",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AA3",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AA4",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AA5",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AB1",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AB2",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AB3",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AB4",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AB5",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AC1",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AC2",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AC3",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AC4",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AC5",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AD1",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AD2",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AD3",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AD4",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AD5",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
+        // create + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AA1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AA2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AA3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AA4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AA5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid = approvedStructureElements[0].getUuid();
+
+        // create + cancel
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AB1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AB2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AB3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AB4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AB5", "description", "comment")
+        };
+        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+
+        // create + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AC1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AC2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AC3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AC4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AC5", "description", "comment")
+        };
+        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+
+        // create
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AD1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AD2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AD3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AD4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AD5", "description", "comment")
+        };
+        ITUtilStructures.assertCreate(structureElementCommandsCreate);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
         String description3 = "more description";
         String comment3 = "more comment";
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AE1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AE2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AE3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AE4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AE5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AF1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AF2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AF3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AF4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AF5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AG1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AG2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AG3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AG4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.DISCIPLINE, null,
-                "name", "AG5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
+        // create + approve
+        // update + approve
+        // update + approve
+        // delete + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AE1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AE2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AE3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AE4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AE5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid2 = approvedStructureElements[0].getUuid();
+
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+            structureElementCommandUpdate.setComment(comment2);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description3);
+            structureElementCommandUpdate.setComment(comment3);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AF1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AF2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AF3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AF4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AF5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AG1", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AG2", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AG3", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AG4", "description", "comment"),
+                new StructureElementCommandCreate(Type.DISCIPLINE, null, "name", "AG5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // 60 discipline entries
 
@@ -1960,10 +1791,10 @@ class StructuresDisciplineIT {
             // 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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
             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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
             // type and uuid
             //     /{type}/{uuid}
diff --git a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
index f7a4c059..cc72299d 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSubsystemIT.java
@@ -1745,286 +1745,117 @@ class StructuresSubsystemIT {
         // note
         //     create (and more) to read (with content)
         //     querying for Status.APPROVED means latest approved
+        //     multiple commands at same time may have effects on order by (when)
+
+        StructureElementCommandCreate[] structureElementCommandsCreate = null;
+        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
+        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
+        StructureElement[] approvedStructureElements = null;
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement = null;
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AA1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AA2",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AA3",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AA4",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AA5",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AB1",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AB2",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AB3",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AB4",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AB5",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AC1",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AC2",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AC3",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AC4",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AC5",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AD1",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AD2",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AD3",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AD4",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AD5",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
+        // create + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AA1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AA2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AA3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AA4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AA5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid = approvedStructureElements[0].getUuid();
+
+        // create + cancel
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AB1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AB2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AB3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AB4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AB5", "description", "comment")
+        };
+        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+
+        // create + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AC1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AC2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AC3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AC4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AC5", "description", "comment")
+        };
+        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+
+        // create
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AD1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AD2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AD3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AD4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AD5", "description", "comment")
+        };
+        ITUtilStructures.assertCreate(structureElementCommandsCreate);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
         String description3 = "more description";
         String comment3 = "more comment";
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AE1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AE2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AE3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AE4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AE5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AF1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AF2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AF3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AF4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AF5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AG1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AG2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AG3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AG4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SUBSYSTEM, systemUuid,
-                "name", "AG5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
+        // create + approve
+        // update + approve
+        // update + approve
+        // delete + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AE1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AE2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AE3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AE4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AE5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid2 = approvedStructureElements[0].getUuid();
+
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+            structureElementCommandUpdate.setComment(comment2);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description3);
+            structureElementCommandUpdate.setComment(comment3);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AF1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AF2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AF3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AF4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AF5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AG1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AG2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AG3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AG4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SUBSYSTEM, systemUuid, "name", "AG5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // 60 subsystem entries
 
@@ -2172,10 +2003,10 @@ class StructuresSubsystemIT {
             // 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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
             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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
             // type and uuid
             //     /{type}/{uuid}
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
index 9910c720..1e4a93e1 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemGroupIT.java
@@ -1596,287 +1596,118 @@ class StructuresSystemGroupIT {
         // note
         //     create (and more) to read (with content)
         //     querying for Status.APPROVED means latest approved
+        //     multiple commands at same time may have effects on order by (when)
+
+        StructureElementCommandCreate[] structureElementCommandsCreate = null;
+        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
+        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
+        StructureElement[] approvedStructureElements = null;
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement = null;
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
         UUID uuidRandom = UUID.randomUUID();
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AA1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AA2",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AA3",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AA4",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AA5",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AB1",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AB2",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AB3",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AB4",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AB5",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AC1",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AC2",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AC3",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AC4",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AC5",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AD1",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AD2",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AD3",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AD4",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AD5",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
+        // create + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AA1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AA2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AA3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AA4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AA5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid = approvedStructureElements[0].getUuid();
+
+        // create + cancel
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AB1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AB2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AB3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AB4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AB5", "description", "comment"),
+        };
+        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+
+        // create + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AC1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AC2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AC3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AC4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AC5", "description", "comment")
+        };
+        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+
+        // create
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AD1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AD2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AD3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AD4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AD5", "description", "comment")
+        };
+        ITUtilStructures.assertCreate(structureElementCommandsCreate);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
         String description3 = "more description";
         String comment3 = "more comment";
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AE1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AE2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AE3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AE4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AE5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AF1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AF2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AF3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AF4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AF5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AG1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AG2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AG3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AG4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEMGROUP, null,
-                "name", "AG5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
+        // create + approve
+        // update + approve
+        // update + approve
+        // delete + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AE1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AE2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AE3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AE4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AE5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid2 = approvedStructureElements[0].getUuid();
+
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+            structureElementCommandUpdate.setComment(comment2);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description3);
+            structureElementCommandUpdate.setComment(comment3);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AF1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AF2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AF3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AF4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AF5", "description", "comment"),
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AG1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AG2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AG3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AG4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEMGROUP, null, "name", "AG5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // 60 system group entries
 
@@ -2023,10 +1854,10 @@ class StructuresSystemGroupIT {
             // 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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
             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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
             // type and uuid
             //     /{type}/{uuid}
diff --git a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
index f4dd58ad..0669c23c 100644
--- a/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
+++ b/src/test/java/org/openepics/names/docker/StructuresSystemIT.java
@@ -1642,286 +1642,117 @@ class StructuresSystemIT {
         // note
         //     create (and more) to read (with content)
         //     querying for Status.APPROVED means latest approved
+        //     multiple commands at same time may have effects on order by (when)
+
+        StructureElementCommandCreate[] structureElementCommandsCreate = null;
+        StructureElementCommandUpdate[] structureElementCommandsUpdate = null;
+        StructureElementCommandConfirm[] structureElementCommandsConfirm = null;
+        StructureElement[] approvedStructureElements = null;
 
-        StructureElementCommandCreate structureElementCommandCreate = null;
-        StructureElementCommandUpdate structureElementCommandUpdate = null;
-        StructureElementCommandConfirm structureElementCommandConfirm = null;
-        StructureElement createdStructureElement = null;
         ResponsePageStructureElements response, response2 = null;
         UUID uuid = null;
         UUID uuid2 = null;
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AA1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid = createdStructureElement.getUuid();
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AA2",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AA3",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AA4",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AA5",
-                "description", "comment");
-        ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AB1",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AB2",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AB3",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AB4",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AB5",
-                "description", "comment");
-        ITUtilStructures.assertCreateCancel(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AC1",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AC2",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AC3",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AC4",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AC5",
-                "description", "comment");
-        ITUtilStructures.assertCreateReject(structureElementCommandCreate);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AD1",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AD2",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AD3",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AD4",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AD5",
-                "description", "comment");
-        ITUtilStructures.assertCreate(structureElementCommandCreate);
+        // create + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AA1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AA2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AA3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AA4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AA5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid = approvedStructureElements[0].getUuid();
+
+        // create + cancel
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AB1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AB2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AB3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AB4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AB5", "description", "comment")
+        };
+        ITUtilStructures.assertCreateCancel(structureElementCommandsCreate);
+
+        // create + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AC1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AC2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AC3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AC4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AC5", "description", "comment")
+        };
+        ITUtilStructures.assertCreateReject(structureElementCommandsCreate);
+
+        // create
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AD1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AD2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AD3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AD4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AD5", "description", "comment")
+        };
+        ITUtilStructures.assertCreate(structureElementCommandsCreate);
 
         String description2 = "some other description";
         String comment2 = "some other comment";
         String description3 = "more description";
         String comment3 = "more comment";
 
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AE1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        uuid2 = createdStructureElement.getUuid();
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AE2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AE3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AE4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AE5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description2);
-        structureElementCommandUpdate.setComment(comment2);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandUpdate = StructureElementUtil.convertElement2CommandUpdate(createdStructureElement);
-        structureElementCommandUpdate.setDescription(description3);
-        structureElementCommandUpdate.setComment(comment3);
-        ITUtilStructures.assertUpdateApprove(structureElementCommandUpdate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteReject(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AF1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AF2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AF3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AF4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AF5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDeleteApprove(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AG1",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AG2",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AG3",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AG4",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
-
-        structureElementCommandCreate = new StructureElementCommandCreate(
-                Type.SYSTEM, systemGroupUuid,
-                "name", "AG5",
-                "description", "comment");
-        createdStructureElement = ITUtilStructures.assertCreateApprove(structureElementCommandCreate);
-        structureElementCommandConfirm = StructureElementUtil.convertElement2CommandConfirm(createdStructureElement);
-        ITUtilStructures.assertDelete(structureElementCommandConfirm);
+        // create + approve
+        // update + approve
+        // update + approve
+        // delete + reject
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AE1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AE2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AE3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AE4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AE5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        uuid2 = approvedStructureElements[0].getUuid();
+
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description2);
+            structureElementCommandUpdate.setComment(comment2);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsUpdate = StructureElementUtil.convertElement2CommandUpdate(approvedStructureElements);
+        for (StructureElementCommandUpdate structureElementCommandUpdate : structureElementCommandsUpdate) {
+            structureElementCommandUpdate.setDescription(description3);
+            structureElementCommandUpdate.setComment(comment3);
+        }
+        approvedStructureElements = ITUtilStructures.assertUpdateApprove(structureElementCommandsUpdate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteReject(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete + approve
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AF1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AF2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AF3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AF4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AF5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDeleteApprove(structureElementCommandsConfirm);
+
+        // create + approve
+        // delete
+        structureElementCommandsCreate = new StructureElementCommandCreate[] {
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AG1", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AG2", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AG3", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AG4", "description", "comment"),
+                new StructureElementCommandCreate(Type.SYSTEM, systemGroupUuid, "name", "AG5", "description", "comment")
+        };
+        approvedStructureElements = ITUtilStructures.assertCreateApprove(structureElementCommandsCreate);
+        structureElementCommandsConfirm = StructureElementUtil.convertElement2CommandConfirm(approvedStructureElements);
+        ITUtilStructures.assertDelete(structureElementCommandsConfirm);
 
         // 60 system entries
 
@@ -2068,10 +1899,10 @@ class StructuresSystemIT {
             // 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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
             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));
+            assertEquals(response.getList().get(0).getWhen(), response2.getList().get(response2.getList().size()-1).getWhen());
 
             // type and uuid
             //     /{type}/{uuid}
-- 
GitLab