/** * Performs the following operation to test destroy of an endpoint view. * 1. Increment suspension and timeout counts * 2. Call method destroy of endpoint view * 3. Assert counts to be reset */ public void testDestroy() { EndpointView endpointView = new EndpointView("endpoint", null); endpointView.incrementSuspensions(); endpointView.incrementTimeouts(); endpointView.destroy(); Assert.assertEquals("Last minute suspension count is not reset", 0, endpointView.getLastMinuteEndpointSuspensions()); Assert.assertEquals("Last 5 minute count is not reset", 0, endpointView.getLast5MinuteEndpointSuspensions()); Assert.assertEquals("Last 15 minute count is not reset", 0, endpointView.getLast15MinuteEndpointSuspensions()); Assert.assertEquals("Last minute timeout count is not reset", 0, endpointView.getLastMinuteEndpointTimeouts()); Assert.assertEquals("Last 5 minute timeout count is not reset", 0, endpointView.getLast5MinuteEndpointTimeouts()); Assert.assertEquals("Last 15 minute count is not reset", 0, endpointView.getLast15MinuteEndpointTimeouts()); }
/** * Switches off the endpoint view and tests if the active state of the endpoint view is updated. Additionally, * asserts for the active children count to make sure that all children are de-activated. * * @throws Exception if an exception occurs while switching off the endpoint view */ public void testSwitchOff() throws Exception { EndpointView endpointView = createEndPointView(2); endpointView.switchOn(); endpointView.switchOff(); Assert.assertEquals("Switching off endpoint view has not deactivated all children", 0, endpointView.getActiveChildren()); Assert.assertFalse("Endpoint view is active", endpointView.isActive()); endpointView = createEndPointView(0); endpointView.switchOn(); endpointView.switchOff(); Assert.assertFalse("Endpoint view is active", endpointView.isActive()); }
/** * Method to assert reset statistics of an endpoint view. * * @param endpointView the endpoint view of which statistics should be asserted */ private void assertResetStatistics(EndpointView endpointView) { Assert.assertEquals("message receive count not reset", 0, endpointView.getMessagesReceived()); Assert.assertEquals("Faults receive count not reset", 0, endpointView.getFaultsReceiving()); Assert.assertEquals("Receive timeout count not reset", 0, endpointView.getTimeoutsReceiving()); Assert.assertEquals("Bytes received not reset", 0, endpointView.getBytesReceived()); Assert.assertEquals("Min message size received not reset", 0, endpointView.getMinSizeReceived()); Assert.assertEquals("Max message size received not reset", 0, endpointView.getMaxSizeReceived()); Assert.assertEquals("Average message size received not reset", 0.0, endpointView.getAvgSizeReceived()); Assert.assertEquals("Receiving fault table not cleared", 0, endpointView.getReceivingFaultTable().size()); Assert.assertEquals("Message sent count not reset", 0, endpointView.getMessagesSent()); Assert.assertEquals("Faults sent count not reset", 0, endpointView.getFaultsSending()); Assert.assertEquals("Sending timeout count not reset", 0, endpointView.getTimeoutsSending()); Assert.assertEquals("Bytes send not reset", 0, endpointView.getBytesSent()); Assert.assertEquals("Min message size sent not reset", 0, endpointView.getMinSizeSent()); Assert.assertEquals("Max message size sent not reset", 0, endpointView.getMaxSizeSent()); Assert.assertEquals("Average message size setn not reset", 0.0, endpointView.getAvgSizeSent()); Assert.assertEquals("Sending failut table not cleared", 0, endpointView.getSendingFaultTable().size()); Assert.assertEquals("Response code table not cleared", 0, endpointView.getResponseCodeTable().size()); }
/** * Tests if the sending faults table and the sending fault counts are correctly updated when * 'incrementFaultsSending' is called. */ public void testIncrementFaultsSending() { EndpointView endpointView = createMockEndPointView(0); endpointView.incrementFaultsSending(100); Assert.assertEquals("Sending fault count not incremented", 1, endpointView.getFaultsSending()); Assert.assertEquals("Sending fault table not updated", 1, endpointView.getSendingFaultTable().get(100).longValue()); endpointView.incrementFaultsSending(100); Assert.assertEquals("Sending fault count not incremented", 2, endpointView.getFaultsSending()); Assert.assertEquals("Sending fault table not updated", 2, endpointView.getSendingFaultTable().get(100).longValue()); }
/** * Tests if the receiving faults table and the fault receiving counts are correctly updated when * 'incrementFaultsReceiving' is called. */ public void testIncrementFaultsReceiving() { EndpointView endpointView = createMockEndPointView(0); endpointView.incrementFaultsReceiving(100); Assert.assertEquals("Receiving fault count not incremented", 1, endpointView.getFaultsReceiving()); Assert.assertEquals("Receiving fault table not updated", 1, endpointView.getReceivingFaultTable().get(100).longValue()); endpointView.incrementFaultsReceiving(100); Assert.assertEquals("Receiving fault count not incremented", 2, endpointView.getFaultsReceiving()); Assert.assertEquals("Receiving fault table not updated", 2, endpointView.getReceivingFaultTable().get(100).longValue()); }
/** * Switches on the endpoint view and tests if the active state of the endpoint view is updated. Additionally, * asserts for the active children count to make sure that all children are activated. * * @throws Exception if an exception occurs while activating endpoint view */ public void testSwitchOn() throws Exception { EndpointView endpointView = createEndPointView(2); endpointView.switchOn(); Assert.assertEquals("Switching on endpoint view has not activated all children", 2, endpointView.getActiveChildren()); Assert.assertTrue("Endpoint view is not active", endpointView.isActive()); endpointView = createEndPointView(0); endpointView.switchOn(); Assert.assertTrue("Endpoint view is not active", endpointView.isActive()); }
/** * Asserts if the the endpoint view correctly returns the number of active child endpoints included in the * endpoint associated with the view. * * @throws Exception if an error occurs while accessing child endpoints */ public void testGetActiveChildren() throws Exception { //Assert with children AbstractEndpoint endpoint = createMockEndPoint(5); Mockito.when(endpoint.getChildren().get(0).getContext().isState(EndpointContext.ST_ACTIVE)).thenReturn(true); Mockito.when(endpoint.getChildren().get(1).getContext().isState(EndpointContext.ST_ACTIVE)).thenReturn(false); Mockito.when(endpoint.getChildren().get(2).getContext().isState(EndpointContext.ST_ACTIVE)).thenReturn(true); Mockito.when(endpoint.getChildren().get(3).getContext().isState(EndpointContext.ST_ACTIVE)).thenReturn(false); Mockito.when(endpoint.getChildren().get(4).getContext().isState(EndpointContext.ST_ACTIVE)).thenReturn(true); EndpointView endpointView = new EndpointView("endpoint", endpoint); Assert.assertEquals("Incorrect active children count", 3, endpointView.getActiveChildren()); //Assert when endpoint has no children EndpointView endpointViewWithoutChildren = createMockEndPointView(0); Assert.assertEquals("Incorrect active children count", 0, endpointViewWithoutChildren.getActiveChildren()); }
public void setName(String endpointName) { this.endpointName = endpointName; if (enableMBeanStats) { if (endpointName == null || "".equals(endpointName.trim())) { //we skip stat collection for endpoints with no defined name log.warn("Endpoint Name not found. Skipped JMX statistics collection for this endpoint"); return; } metricsMBean = new EndpointView(endpointName, this); MBeanRegistrar.getInstance().registerMBean(metricsMBean, "Endpoint", endpointName); } }
/** * Asserts if the the endpoint view correctly returns the number of child endpoints in the ready state. * * @throws Exception if an error occurs while accessing child endpoints */ public void testGetReadyChildren() throws Exception { AbstractEndpoint endpoint = createMockEndPoint(3); EndpointView endpointView = new EndpointView("endpoint", endpoint); Mockito.when(endpoint.getChildren().get(0).getContext().readyToSend()).thenReturn(true); Assert.assertEquals("Incorrect ready children count", 1, endpointView.getReadyChildren()); endpointView = createMockEndPointView(0); Assert.assertEquals("Ready children count should be empty", 0, endpointView.getReadyChildren()); }
/** * 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 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()); }
/** * 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()); }
public void destroy() { if (metricsMBean != null) { metricsMBean.destroy(); } if (enableMBeanStats) { MBeanRegistrar.getInstance().unRegisterMBean("Endpoint", endpointName); } metricsMBean = null; this.initialized = false; }
/** * Is a leaf level endpoint active? For a group endpoint this means at least one is active * @return true if at least one is active in a group endpoint; for a leaf - if it is currently active * @throws Exception */ public boolean isActive() throws Exception { if (endpoint.getChildren() != null) { return getActiveChildren() > 0; } else if (endpoint.getContext() != null) { return endpoint.getContext().isState(EndpointContext.ST_ACTIVE); } return false; }
public double getAvgSizeSent() { if (endpoint.getChildren() != null) { double avgSizeSent = 0; for (Endpoint e : endpoint.getChildren()) { double epValue = e.getMetricsMBean() == null ? 0 : e.getMetricsMBean().getAvgSizeSent(); if (epValue > 0) { avgSizeSent = (avgSizeSent == 0 ? epValue : (avgSizeSent + epValue) / 2); } } return avgSizeSent; } else { return avgSizeSent; } }
public long getMaxSizeReceived() { if (endpoint.getChildren() != null) { long maxSizeReceived = 0; for (Endpoint e : endpoint.getChildren()) { if (e.getMetricsMBean() != null) { if (maxSizeReceived == 0) { maxSizeReceived = e.getMetricsMBean().getMaxSizeReceived(); } else if (e.getMetricsMBean().getMaxSizeReceived() > maxSizeReceived) { maxSizeReceived = e.getMetricsMBean().getMaxSizeReceived(); } } } return maxSizeReceived; } else { return maxSizeReceived; } }
public double getAvgSizeReceived() { if (endpoint.getChildren() != null) { double avgSizeReceived = 0; for (Endpoint e : endpoint.getChildren()) { double epValue = e.getMetricsMBean() == null ? 0 : e.getMetricsMBean().getAvgSizeReceived(); if (epValue > 0) { avgSizeReceived = (avgSizeReceived == 0 ? epValue : (avgSizeReceived + epValue) / 2); } } return avgSizeReceived; } else { return avgSizeReceived; } }
/** * Number of bytes sent * @return # of bytes sent */ public long getBytesSent() { if (endpoint.getChildren() != null) { long bytesSent = 0; for (Endpoint e : endpoint.getChildren()) { if (e.getMetricsMBean() != null) { bytesSent += e.getMetricsMBean().getBytesSent(); } } return bytesSent; } else { return bytesSent; } }
/** * Number of bytes received, receiving replies * @return # of bytes received, receiving replies */ public long getBytesReceived() { if (endpoint.getChildren() != null) { long bytesReceived = 0; for (Endpoint e : endpoint.getChildren()) { if (e.getMetricsMBean() != null) { bytesReceived += e.getMetricsMBean().getBytesReceived(); } } return bytesReceived; } else { return bytesReceived; } }