Commit 206a3d386fd869f426b41954fb610107b424bc28
1 parent
2f072838
Edge event controller test stabilization
Showing
1 changed file
with
18 additions
and
15 deletions
@@ -42,7 +42,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. | @@ -42,7 +42,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. | ||
42 | public class BaseEdgeEventControllerTest extends AbstractControllerTest { | 42 | public class BaseEdgeEventControllerTest extends AbstractControllerTest { |
43 | 43 | ||
44 | private Tenant savedTenant; | 44 | private Tenant savedTenant; |
45 | - private TenantId tenantId; | ||
46 | private User tenantAdmin; | 45 | private User tenantAdmin; |
47 | 46 | ||
48 | @Before | 47 | @Before |
@@ -52,7 +51,6 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { | @@ -52,7 +51,6 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { | ||
52 | Tenant tenant = new Tenant(); | 51 | Tenant tenant = new Tenant(); |
53 | tenant.setTitle("My tenant"); | 52 | tenant.setTitle("My tenant"); |
54 | savedTenant = doPost("/api/tenant", tenant, Tenant.class); | 53 | savedTenant = doPost("/api/tenant", tenant, Tenant.class); |
55 | - tenantId = savedTenant.getId(); | ||
56 | Assert.assertNotNull(savedTenant); | 54 | Assert.assertNotNull(savedTenant); |
57 | 55 | ||
58 | tenantAdmin = new User(); | 56 | tenantAdmin = new User(); |
@@ -63,6 +61,10 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { | @@ -63,6 +61,10 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { | ||
63 | tenantAdmin.setLastName("Downs"); | 61 | tenantAdmin.setLastName("Downs"); |
64 | 62 | ||
65 | tenantAdmin = createUserAndLogin(tenantAdmin, "testPassword1"); | 63 | tenantAdmin = createUserAndLogin(tenantAdmin, "testPassword1"); |
64 | + // sleep 1 seconds to avoid CREDENTIALS updated message for the user | ||
65 | + // user credentials is going to be stored and updated event pushed to edge notification service | ||
66 | + // while service will be processing this event edge could be already added and additional message will be pushed | ||
67 | + Thread.sleep(1000); | ||
66 | } | 68 | } |
67 | 69 | ||
68 | @After | 70 | @After |
@@ -75,7 +77,6 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { | @@ -75,7 +77,6 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { | ||
75 | 77 | ||
76 | @Test | 78 | @Test |
77 | public void testGetEdgeEvents() throws Exception { | 79 | public void testGetEdgeEvents() throws Exception { |
78 | - Thread.sleep(500); | ||
79 | Edge edge = constructEdge("TestEdge", "default"); | 80 | Edge edge = constructEdge("TestEdge", "default"); |
80 | edge = doPost("/api/edge", edge, Edge.class); | 81 | edge = doPost("/api/edge", edge, Edge.class); |
81 | 82 | ||
@@ -83,29 +84,31 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { | @@ -83,29 +84,31 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { | ||
83 | Device savedDevice = doPost("/api/device", device, Device.class); | 84 | Device savedDevice = doPost("/api/device", device, Device.class); |
84 | 85 | ||
85 | doPost("/api/edge/" + edge.getId().toString() + "/device/" + savedDevice.getId().toString(), Device.class); | 86 | doPost("/api/edge/" + edge.getId().toString() + "/device/" + savedDevice.getId().toString(), Device.class); |
86 | - Thread.sleep(500); | ||
87 | 87 | ||
88 | Asset asset = constructAsset("TestAsset", "default"); | 88 | Asset asset = constructAsset("TestAsset", "default"); |
89 | Asset savedAsset = doPost("/api/asset", asset, Asset.class); | 89 | Asset savedAsset = doPost("/api/asset", asset, Asset.class); |
90 | 90 | ||
91 | doPost("/api/edge/" + edge.getId().toString() + "/asset/" + savedAsset.getId().toString(), Asset.class); | 91 | doPost("/api/edge/" + edge.getId().toString() + "/asset/" + savedAsset.getId().toString(), Asset.class); |
92 | - Thread.sleep(500); | ||
93 | 92 | ||
94 | EntityRelation relation = new EntityRelation(savedAsset.getId(), savedDevice.getId(), EntityRelation.CONTAINS_TYPE); | 93 | EntityRelation relation = new EntityRelation(savedAsset.getId(), savedDevice.getId(), EntityRelation.CONTAINS_TYPE); |
95 | 94 | ||
96 | doPost("/api/relation", relation); | 95 | doPost("/api/relation", relation); |
97 | - Thread.sleep(500); | ||
98 | 96 | ||
99 | - List<EdgeEvent> edgeEvents = doGetTypedWithTimePageLink("/api/edge/" + edge.getId().toString() + "/events?", | ||
100 | - new TypeReference<PageData<EdgeEvent>>() { | ||
101 | - }, new TimePageLink(4)).getData(); | ||
102 | - | ||
103 | - Assert.assertFalse(edgeEvents.isEmpty()); | 97 | + // wait while edge event for the relation entity persisted to DB |
98 | + Thread.sleep(100); | ||
99 | + List<EdgeEvent> edgeEvents; | ||
100 | + int attempt = 1; | ||
101 | + do { | ||
102 | + edgeEvents = doGetTypedWithTimePageLink("/api/edge/" + edge.getId().toString() + "/events?", | ||
103 | + new TypeReference<PageData<EdgeEvent>>() {}, new TimePageLink(4)).getData(); | ||
104 | + attempt++; | ||
105 | + Thread.sleep(100); | ||
106 | + } while (edgeEvents.size() != 4 || attempt < 5); | ||
104 | Assert.assertEquals(4, edgeEvents.size()); | 107 | Assert.assertEquals(4, edgeEvents.size()); |
105 | - Assert.assertEquals(EdgeEventType.RULE_CHAIN, edgeEvents.get(0).getType()); | ||
106 | - Assert.assertEquals(EdgeEventType.DEVICE, edgeEvents.get(1).getType()); | ||
107 | - Assert.assertEquals(EdgeEventType.ASSET, edgeEvents.get(2).getType()); | ||
108 | - Assert.assertEquals(EdgeEventType.RELATION, edgeEvents.get(3).getType()); | 108 | + Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.RULE_CHAIN.equals(ee.getType()))); |
109 | + Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.DEVICE.equals(ee.getType()))); | ||
110 | + Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.ASSET.equals(ee.getType()))); | ||
111 | + Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.RELATION.equals(ee.getType()))); | ||
109 | } | 112 | } |
110 | 113 | ||
111 | private Device constructDevice(String name, String type) { | 114 | private Device constructDevice(String name, String type) { |