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 {
 | 
			
		||||
 | 
			
		||||
    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) {
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user