/* * Copyright 2014-2016 CyberVision, Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * */ package org.kaaproject.kaa.server.control.service.loadmgmt; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.fail; import static org.mockito.Mockito.atLeast; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.kaaproject.kaa.server.common.zk.control.ControlNode; import org.kaaproject.kaa.server.common.zk.operations.OperationsNodeListener; import org.kaaproject.kaa.server.control.service.loadmgmt.dynamicmgmt.EndpointCountRebalancer; import org.kaaproject.kaa.server.control.service.zk.ControlZkService; /** * @author Andrey Panasenko <apanasenko@cybervisiontech.com> */ public class DynamicLoadManagerTest { private static LoadDistributionService ldServiceMock; private static ControlZkService zkServiceMock; private static ControlNode pNodeMock; /** * @throws java.lang.Exception */ @BeforeClass public static void setUpBeforeClass() throws Exception { ldServiceMock = mock(LoadDistributionService.class); zkServiceMock = mock(ControlZkService.class); pNodeMock = mock(ControlNode.class); when(ldServiceMock.getOpsServerHistoryTtl()).thenReturn(300); when(ldServiceMock.getRebalancer()).thenReturn(new EndpointCountRebalancer()); when(ldServiceMock.getZkService()).thenReturn(zkServiceMock); when(zkServiceMock.getControlZkNode()).thenReturn(pNodeMock); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#DynamicLoadManager(org.kaaproject.kaa.server.control.service.loadmgmt.LoadDistributionService)}. */ @Test public void testDynamicLoadManager() { DynamicLoadManager dm = new DynamicLoadManager(ldServiceMock); assertNotNull(dm); assertNotNull(dm.getLoadDistributionService()); assertNotNull(dm.getDynamicRebalancer()); verify(ldServiceMock, atLeast(1)).getOpsServerHistoryTtl(); assertEquals(300000, dm.getOpsServerHistoryTtl()); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#recalculate()}. */ @Test public void testRecalculate() { DynamicLoadManager dm = new DynamicLoadManager(ldServiceMock); assertNotNull(dm); dm.recalculate(); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#registerListeners()}. */ @Test public void testRegisterListeners() { DynamicLoadManager dm = new DynamicLoadManager(ldServiceMock); assertNotNull(dm); dm.registerListeners(); verify(pNodeMock, atLeast(1)).addListener((OperationsNodeListener) dm); //verify(pNodeMock, times(1)).addListener((BootstrapNodeListener)dm); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#deregisterListeners()}. */ @Ignore @Test public void testDeregisterListeners() { fail("Not yet implemented"); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#onNodeAdded(org.kaaproject.kaa.server.common.zk.gen.BootstrapNodeInfo)}. */ @Ignore @Test public void testOnNodeAddedBootstrapNodeInfo() { fail("Not yet implemented"); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#onNodeUpdated(org.kaaproject.kaa.server.common.zk.gen.BootstrapNodeInfo)}. */ @Ignore @Test public void testOnNodeUpdatedBootstrapNodeInfo() { fail("Not yet implemented"); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#onNodeRemoved(org.kaaproject.kaa.server.common.zk.gen.BootstrapNodeInfo)}. */ @Ignore @Test public void testOnNodeRemovedBootstrapNodeInfo() { fail("Not yet implemented"); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#onNodeAdded(org.kaaproject.kaa.server.common.zk.gen.EndpointNodeInfo)}. */ @Ignore @Test public void testOnNodeAddedEndpointNodeInfo() { fail("Not yet implemented"); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#onNodeUpdated(org.kaaproject.kaa.server.common.zk.gen.EndpointNodeInfo)}. */ @Ignore @Test public void testOnNodeUpdatedEndpointNodeInfo() { fail("Not yet implemented"); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#onNodeRemoved(org.kaaproject.kaa.server.common.zk.gen.EndpointNodeInfo)}. */ @Ignore @Test public void testOnNodeRemovedEndpointNodeInfo() { fail("Not yet implemented"); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#getLoadDistributionService()}. */ @Ignore @Test public void testGetLoadDistributionService() { fail("Not yet implemented"); } /** * Test method for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#setLoadDistributionService(org.kaaproject.kaa.server.control.service.loadmgmt.LoadDistributionService)}. */ @Ignore @Test public void testSetLoadDistributionService() { fail("Not yet implemented"); } /** * Test methods for {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#setOpsServerHistoryTtl(long)}. * and {@link org.kaaproject.kaa.server.control.service.loadmgmt.DynamicLoadManager#getOpsServerHistoryTTL(long)} */ @Test public void testEndpointHistoryTTL() { DynamicLoadManager dm = new DynamicLoadManager(ldServiceMock); assertNotNull(dm); long opsServerHistoryTTL = 123456; dm.setOpsServerHistoryTtl(opsServerHistoryTTL); assertEquals(opsServerHistoryTTL, dm.getOpsServerHistoryTtl()); } }