|
|
|
@ -42,7 +42,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers. |
|
|
|
public class BaseEdgeEventControllerTest extends AbstractControllerTest { |
|
|
|
|
|
|
|
private Tenant savedTenant; |
|
|
|
private TenantId tenantId; |
|
|
|
private User tenantAdmin; |
|
|
|
|
|
|
|
@Before |
|
|
|
@ -52,7 +51,6 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { |
|
|
|
Tenant tenant = new Tenant(); |
|
|
|
tenant.setTitle("My tenant"); |
|
|
|
savedTenant = doPost("/api/tenant", tenant, Tenant.class); |
|
|
|
tenantId = savedTenant.getId(); |
|
|
|
Assert.assertNotNull(savedTenant); |
|
|
|
|
|
|
|
tenantAdmin = new User(); |
|
|
|
@ -63,6 +61,10 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { |
|
|
|
tenantAdmin.setLastName("Downs"); |
|
|
|
|
|
|
|
tenantAdmin = createUserAndLogin(tenantAdmin, "testPassword1"); |
|
|
|
// sleep 1 seconds to avoid CREDENTIALS updated message for the user
|
|
|
|
// user credentials is going to be stored and updated event pushed to edge notification service
|
|
|
|
// while service will be processing this event edge could be already added and additional message will be pushed
|
|
|
|
Thread.sleep(1000); |
|
|
|
} |
|
|
|
|
|
|
|
@After |
|
|
|
@ -75,7 +77,6 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { |
|
|
|
|
|
|
|
@Test |
|
|
|
public void testGetEdgeEvents() throws Exception { |
|
|
|
Thread.sleep(500); |
|
|
|
Edge edge = constructEdge("TestEdge", "default"); |
|
|
|
edge = doPost("/api/edge", edge, Edge.class); |
|
|
|
|
|
|
|
@ -83,29 +84,31 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest { |
|
|
|
Device savedDevice = doPost("/api/device", device, Device.class); |
|
|
|
|
|
|
|
doPost("/api/edge/" + edge.getId().toString() + "/device/" + savedDevice.getId().toString(), Device.class); |
|
|
|
Thread.sleep(500); |
|
|
|
|
|
|
|
Asset asset = constructAsset("TestAsset", "default"); |
|
|
|
Asset savedAsset = doPost("/api/asset", asset, Asset.class); |
|
|
|
|
|
|
|
doPost("/api/edge/" + edge.getId().toString() + "/asset/" + savedAsset.getId().toString(), Asset.class); |
|
|
|
Thread.sleep(500); |
|
|
|
|
|
|
|
EntityRelation relation = new EntityRelation(savedAsset.getId(), savedDevice.getId(), EntityRelation.CONTAINS_TYPE); |
|
|
|
|
|
|
|
doPost("/api/relation", relation); |
|
|
|
Thread.sleep(500); |
|
|
|
|
|
|
|
List<EdgeEvent> edgeEvents = doGetTypedWithTimePageLink("/api/edge/" + edge.getId().toString() + "/events?", |
|
|
|
new TypeReference<PageData<EdgeEvent>>() { |
|
|
|
}, new TimePageLink(4)).getData(); |
|
|
|
|
|
|
|
Assert.assertFalse(edgeEvents.isEmpty()); |
|
|
|
// wait while edge event for the relation entity persisted to DB
|
|
|
|
Thread.sleep(100); |
|
|
|
List<EdgeEvent> edgeEvents; |
|
|
|
int attempt = 1; |
|
|
|
do { |
|
|
|
edgeEvents = doGetTypedWithTimePageLink("/api/edge/" + edge.getId().toString() + "/events?", |
|
|
|
new TypeReference<PageData<EdgeEvent>>() {}, new TimePageLink(4)).getData(); |
|
|
|
attempt++; |
|
|
|
Thread.sleep(100); |
|
|
|
} while (edgeEvents.size() != 4 || attempt < 5); |
|
|
|
Assert.assertEquals(4, edgeEvents.size()); |
|
|
|
Assert.assertEquals(EdgeEventType.RULE_CHAIN, edgeEvents.get(0).getType()); |
|
|
|
Assert.assertEquals(EdgeEventType.DEVICE, edgeEvents.get(1).getType()); |
|
|
|
Assert.assertEquals(EdgeEventType.ASSET, edgeEvents.get(2).getType()); |
|
|
|
Assert.assertEquals(EdgeEventType.RELATION, edgeEvents.get(3).getType()); |
|
|
|
Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.RULE_CHAIN.equals(ee.getType()))); |
|
|
|
Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.DEVICE.equals(ee.getType()))); |
|
|
|
Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.ASSET.equals(ee.getType()))); |
|
|
|
Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.RELATION.equals(ee.getType()))); |
|
|
|
} |
|
|
|
|
|
|
|
private Device constructDevice(String name, String type) { |
|
|
|
|