Edge event controller test stabilization
This commit is contained in:
parent
2f07283876
commit
206a3d386f
@ -42,7 +42,6 @@ import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.
|
|||||||
public class BaseEdgeEventControllerTest extends AbstractControllerTest {
|
public class BaseEdgeEventControllerTest extends AbstractControllerTest {
|
||||||
|
|
||||||
private Tenant savedTenant;
|
private Tenant savedTenant;
|
||||||
private TenantId tenantId;
|
|
||||||
private User tenantAdmin;
|
private User tenantAdmin;
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
@ -52,7 +51,6 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest {
|
|||||||
Tenant tenant = new Tenant();
|
Tenant tenant = new Tenant();
|
||||||
tenant.setTitle("My tenant");
|
tenant.setTitle("My tenant");
|
||||||
savedTenant = doPost("/api/tenant", tenant, Tenant.class);
|
savedTenant = doPost("/api/tenant", tenant, Tenant.class);
|
||||||
tenantId = savedTenant.getId();
|
|
||||||
Assert.assertNotNull(savedTenant);
|
Assert.assertNotNull(savedTenant);
|
||||||
|
|
||||||
tenantAdmin = new User();
|
tenantAdmin = new User();
|
||||||
@ -63,6 +61,10 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest {
|
|||||||
tenantAdmin.setLastName("Downs");
|
tenantAdmin.setLastName("Downs");
|
||||||
|
|
||||||
tenantAdmin = createUserAndLogin(tenantAdmin, "testPassword1");
|
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
|
@After
|
||||||
@ -75,7 +77,6 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetEdgeEvents() throws Exception {
|
public void testGetEdgeEvents() throws Exception {
|
||||||
Thread.sleep(500);
|
|
||||||
Edge edge = constructEdge("TestEdge", "default");
|
Edge edge = constructEdge("TestEdge", "default");
|
||||||
edge = doPost("/api/edge", edge, Edge.class);
|
edge = doPost("/api/edge", edge, Edge.class);
|
||||||
|
|
||||||
@ -83,29 +84,31 @@ public class BaseEdgeEventControllerTest extends AbstractControllerTest {
|
|||||||
Device savedDevice = doPost("/api/device", device, Device.class);
|
Device savedDevice = doPost("/api/device", device, Device.class);
|
||||||
|
|
||||||
doPost("/api/edge/" + edge.getId().toString() + "/device/" + savedDevice.getId().toString(), Device.class);
|
doPost("/api/edge/" + edge.getId().toString() + "/device/" + savedDevice.getId().toString(), Device.class);
|
||||||
Thread.sleep(500);
|
|
||||||
|
|
||||||
Asset asset = constructAsset("TestAsset", "default");
|
Asset asset = constructAsset("TestAsset", "default");
|
||||||
Asset savedAsset = doPost("/api/asset", asset, Asset.class);
|
Asset savedAsset = doPost("/api/asset", asset, Asset.class);
|
||||||
|
|
||||||
doPost("/api/edge/" + edge.getId().toString() + "/asset/" + savedAsset.getId().toString(), 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);
|
EntityRelation relation = new EntityRelation(savedAsset.getId(), savedDevice.getId(), EntityRelation.CONTAINS_TYPE);
|
||||||
|
|
||||||
doPost("/api/relation", relation);
|
doPost("/api/relation", relation);
|
||||||
Thread.sleep(500);
|
|
||||||
|
|
||||||
List<EdgeEvent> edgeEvents = doGetTypedWithTimePageLink("/api/edge/" + edge.getId().toString() + "/events?",
|
// wait while edge event for the relation entity persisted to DB
|
||||||
new TypeReference<PageData<EdgeEvent>>() {
|
Thread.sleep(100);
|
||||||
}, new TimePageLink(4)).getData();
|
List<EdgeEvent> edgeEvents;
|
||||||
|
int attempt = 1;
|
||||||
Assert.assertFalse(edgeEvents.isEmpty());
|
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(4, edgeEvents.size());
|
||||||
Assert.assertEquals(EdgeEventType.RULE_CHAIN, edgeEvents.get(0).getType());
|
Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.RULE_CHAIN.equals(ee.getType())));
|
||||||
Assert.assertEquals(EdgeEventType.DEVICE, edgeEvents.get(1).getType());
|
Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.DEVICE.equals(ee.getType())));
|
||||||
Assert.assertEquals(EdgeEventType.ASSET, edgeEvents.get(2).getType());
|
Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.ASSET.equals(ee.getType())));
|
||||||
Assert.assertEquals(EdgeEventType.RELATION, edgeEvents.get(3).getType());
|
Assert.assertTrue(edgeEvents.stream().anyMatch(ee -> EdgeEventType.RELATION.equals(ee.getType())));
|
||||||
}
|
}
|
||||||
|
|
||||||
private Device constructDevice(String name, String type) {
|
private Device constructDevice(String name, String type) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user