Fix macro flow resource blocks processing order
[so.git] / bpmn / so-bpmn-tasks / src / test / java / org / onap / so / bpmn / infrastructure / workflow / tasks / ResourceTest.java
index 5e3afa1..cd98792 100644 (file)
@@ -4,6 +4,8 @@
  * ================================================================================
  * Copyright (C) 2021 Bell Canada. All rights reserved.
  * ================================================================================
+ * Modifications Copyright (c) 2021 Orange
+ * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
@@ -30,26 +32,84 @@ public class ResourceTest {
 
     @Test
     public void testBaseFirstComparator() {
-        Resource r1 = new Resource(null, "1", false);
-        Resource r2 = new Resource(null, "2", false);
+        Resource r1 = new Resource(null, "1", false, null);
+        Resource r2 = new Resource(null, "2", false, null);
+        r2.setBaseVfModule(true);
+
+        List<Resource> sorted =
+                Arrays.asList(r1, r2).stream().sorted(Resource.sortByPriorityAsc).collect(Collectors.toList());
+
+        assertEquals("2", sorted.get(0).getResourceId());
+    }
+
+    @Test
+    public void testPriorityAscComparator() {
+        Resource r1 = new Resource(null, "1", false, null);
+        Resource r2 = new Resource(null, "2", false, null);
+        Resource r3 = new Resource(null, "3", false, null);
+        Resource r4 = new Resource(null, "4", false, null);
+        r1.setProcessingPriority(4);
         r2.setBaseVfModule(true);
+        r3.setProcessingPriority(2);
+        r4.setProcessingPriority(1);
 
         List<Resource> sorted =
-                Arrays.asList(r1, r2).stream().sorted(Resource.sortBaseFirst).collect(Collectors.toList());
+                Arrays.asList(r1, r2, r3, r4).stream().sorted(Resource.sortByPriorityAsc).collect(Collectors.toList());
 
         assertEquals("2", sorted.get(0).getResourceId());
+        assertEquals("4", sorted.get(1).getResourceId());
+        assertEquals("3", sorted.get(2).getResourceId());
     }
 
     @Test
     public void testBaseLastComparator() {
-        Resource r1 = new Resource(null, "1", false);
-        Resource r2 = new Resource(null, "2", false);
+        Resource r1 = new Resource(null, "1", false, null);
+        Resource r2 = new Resource(null, "2", false, null);
         r1.setBaseVfModule(true);
 
         List<Resource> sorted =
-                Arrays.asList(r1, r2).stream().sorted(Resource.sortBaseLast).collect(Collectors.toList());
+                Arrays.asList(r1, r2).stream().sorted(Resource.sortByPriorityDesc).collect(Collectors.toList());
 
         assertEquals("1", sorted.get(1).getResourceId());
     }
 
+    @Test
+    public void testPriorityDescComparator() {
+        Resource r1 = new Resource(null, "1", false, null);
+        Resource r2 = new Resource(null, "2", false, null);
+        Resource r3 = new Resource(null, "3", false, null);
+        Resource r4 = new Resource(null, "4", false, null);
+        r1.setProcessingPriority(4);
+        r2.setBaseVfModule(true);
+        r3.setProcessingPriority(2);
+        r4.setProcessingPriority(1);
+
+        List<Resource> sorted =
+                Arrays.asList(r1, r2, r3, r4).stream().sorted(Resource.sortByPriorityDesc).collect(Collectors.toList());
+
+        assertEquals("1", sorted.get(0).getResourceId());
+        assertEquals("3", sorted.get(1).getResourceId());
+        assertEquals("4", sorted.get(2).getResourceId());
+    }
+
+    @Test
+    public void testPriorityReplaceBase() {
+        Resource r1 = new Resource(null, "1", false, null);
+        Resource r2 = new Resource(null, "2", false, null);
+        Resource r3 = new Resource(null, "3", false, null);
+        Resource r4 = new Resource(null, "4", false, null);
+        r1.setProcessingPriority(4);
+        r2.setBaseVfModule(true);
+        r2.setProcessingPriority(6);
+        r3.setProcessingPriority(2);
+        r4.setProcessingPriority(1);
+
+        List<Resource> sorted =
+                Arrays.asList(r1, r2, r3, r4).stream().sorted(Resource.sortByPriorityAsc).collect(Collectors.toList());
+
+        assertEquals("4", sorted.get(0).getResourceId());
+        assertEquals("3", sorted.get(1).getResourceId());
+        assertEquals("1", sorted.get(2).getResourceId());
+    }
+
 }