/** * Method to create mock endpoint to be used by the endpoint view. * * @param numberOfChildren the child endpoints inside the endpoint attached to the end point view. If * specified as 0, the children list will be null * @return the created end point view */ private AbstractEndpoint createMockEndPoint(int numberOfChildren) { AbstractEndpoint abstractEndpoint = Mockito.mock(AddressEndpoint.class); if (numberOfChildren > 0) { List<Endpoint> children = new ArrayList<>(); for (int i = 0; i < numberOfChildren; i++) { AbstractEndpoint child = Mockito.mock(AddressEndpoint.class); EndpointContext endpointContext = Mockito.mock(EndpointContext.class); Mockito.when(child.getContext()).thenReturn(endpointContext); children.add(child); } Mockito.when(abstractEndpoint.getChildren()).thenReturn(children); } else { Mockito.when(abstractEndpoint.getChildren()).thenReturn(null); } EndpointContext endpointContext = Mockito.mock(EndpointContext.class); Mockito.when(abstractEndpoint.getContext()).thenReturn(endpointContext); return abstractEndpoint; }
/** * Tests if the endpoint view correctly returns the active state with and without the presence of children * endpoints. The endpoint should be inactive if and only if all child endpoints are inactive. * * @throws Exception if an error occurs while accessing the active children of the endpoint view */ public void testIsActive() throws Exception { AbstractEndpoint endpoint = createMockEndPoint(3); EndpointView endpointView = new EndpointView("endpoint", endpoint); Mockito.when(endpoint.getChildren().get(2).getContext().isState(EndpointContext.ST_ACTIVE)).thenReturn(true); Assert.assertTrue("Endpoint view is not active with active child endpoint", endpointView.isActive()); endpoint = createMockEndPoint(0); EndpointContext endpointContext = Mockito.mock(EndpointContext.class); Mockito.when(endpoint.getContext()).thenReturn(endpointContext); endpointView = new EndpointView("endpoint", endpoint); Mockito.when(endpoint.getContext().isState(EndpointContext.ST_ACTIVE)).thenReturn(true); Assert.assertTrue("Endpoint view is not active", endpointView.isActive()); Mockito.when(endpoint.getContext().isState(EndpointContext.ST_ACTIVE)).thenReturn(false); Assert.assertFalse("Endpoint is active", endpointView.isActive()); }
/** * Tests if the endpoint view correctly returns the timed out state with and without the presence of children * endpoints. The endpoint view should be timed out if and only if all child endpoints are timed out. * * @throws Exception if an error occurs while accessing the state of the endpoint view */ public void testIsTimedout() throws Exception { AbstractEndpoint endpoint = createMockEndPoint(2); EndpointView endpointView = new EndpointView("endpoint", endpoint); Mockito.when(endpoint.getChildren().get(0).getContext().isState(EndpointContext.ST_TIMEOUT)).thenReturn(true); Assert.assertFalse("Endpoint view is timed out with active child endpoints", endpointView.isTimedout()); Mockito.when(endpoint.getChildren().get(1).getContext().isState(EndpointContext.ST_TIMEOUT)).thenReturn(true); Assert.assertTrue("Endpoint view is not timed out with all child endpoints being timed out", endpointView.isTimedout()); endpoint = createMockEndPoint(0); endpointView = new EndpointView("endpoint", endpoint); Mockito.when(endpoint.getContext().isState(EndpointContext.ST_TIMEOUT)).thenReturn(true); Assert.assertTrue("Endpoint view is not timed out", endpointView.isTimedout()); Mockito.when(endpoint.getContext().isState(EndpointContext.ST_TIMEOUT)).thenReturn(false); Assert.assertFalse("Endpoint view is timed out", endpointView.isTimedout()); }
/** * Tests if the endpoint view correctly returns the suspended state with and without the presence of children * endpoints. The endpoint view should be suspended if and only if all child endpoints are suspended. * * @throws Exception if an error occurs while accessing the state of the endpoint view */ public void testIsSuspended() throws Exception { AbstractEndpoint endpoint = createMockEndPoint(2); EndpointView endpointView = new EndpointView("endpoint", endpoint); Mockito.when(endpoint.getChildren().get(0).getContext().isState(EndpointContext.ST_SUSPENDED)).thenReturn(true); Assert.assertFalse("Endpoint view is suspended with active child endpoints", endpointView.isSuspended()); Mockito.when(endpoint.getChildren().get(1).getContext().isState(EndpointContext.ST_SUSPENDED)).thenReturn(true); Assert.assertTrue("Endpoint view is not suspended with all child endpoints being suspended", endpointView.isSuspended()); endpoint = createMockEndPoint(0); endpointView = new EndpointView("endpoint", endpoint); Mockito.when(endpoint.getContext().isState(EndpointContext.ST_SUSPENDED)).thenReturn(true); Assert.assertTrue("Endpoint view is not suspended", endpointView.isSuspended()); Mockito.when(endpoint.getContext().isState(EndpointContext.ST_SUSPENDED)).thenReturn(false); Assert.assertFalse("Endpoint view is suspended", endpointView.isSuspended()); }
/** * Tests if the endpoint view correctly returns the switched off state with and without the presence of children * endpoints. The endpoint view should be switched if and only if all child endpoints are switched off. * * @throws Exception if an error occurs while accessing the state of the endpoint view */ public void testIsSwitchedOff() throws Exception { AbstractEndpoint endpoint = createMockEndPoint(2); EndpointView endpointView = new EndpointView("endpoint", endpoint); Mockito.when(endpoint.getChildren().get(0).getContext().isState(EndpointContext.ST_OFF)).thenReturn(true); Assert.assertFalse("Endpoint view switched off with active child endpoints", endpointView.isSwitchedOff()); Mockito.when(endpoint.getChildren().get(1).getContext().isState(EndpointContext.ST_OFF)).thenReturn(true); Assert.assertTrue("Endpoint view is not switched off with all child endpoints being switched off", endpointView.isSwitchedOff()); endpoint = createMockEndPoint(0); endpointView = new EndpointView("endpoint", endpoint); Mockito.when(endpoint.getContext().isState(EndpointContext.ST_OFF)).thenReturn(true); Assert.assertTrue("Endpoint view is not switched off", endpointView.isSwitchedOff()); Mockito.when(endpoint.getContext().isState(EndpointContext.ST_OFF)).thenReturn(false); Assert.assertFalse("Endpoint view is swtiched off", endpointView.isSwitchedOff()); }