Repository: ambari Updated Branches: refs/heads/trunk c73b74f67 -> 679fe2f93
AMBARI-9089. Add unit test for HiveServiceStatus code(according to hive metastore ha).(vbrodetskyi) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/679fe2f9 Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/679fe2f9 Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/679fe2f9 Branch: refs/heads/trunk Commit: 679fe2f9326d6bbbb694bcfd1bc62dbcd6df499b Parents: c73b74f Author: Vitaly Brodetskyi <[email protected]> Authored: Wed Dec 31 13:13:00 2014 +0200 Committer: Vitaly Brodetskyi <[email protected]> Committed: Wed Dec 31 13:13:00 2014 +0200 ---------------------------------------------------------------------- .../internal/ServiceResourceProviderTest.java | 217 +++++++++++++++++-- 1 file changed, 193 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/679fe2f9/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java index 5003c16..0c145fb 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/ServiceResourceProviderTest.java @@ -18,30 +18,6 @@ package org.apache.ambari.server.controller.internal; -import static org.easymock.EasyMock.anyBoolean; -import static org.easymock.EasyMock.anyObject; -import static org.easymock.EasyMock.capture; -import static org.easymock.EasyMock.createMock; -import static org.easymock.EasyMock.createNiceMock; -import static org.easymock.EasyMock.createStrictMock; -import static org.easymock.EasyMock.eq; -import static org.easymock.EasyMock.expect; -import static org.easymock.EasyMock.isNull; -import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.reset; -import static org.easymock.EasyMock.verify; - -import java.lang.reflect.Field; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashMap; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.RoleCommand; import org.apache.ambari.server.api.services.AmbariMetaInfo; @@ -74,6 +50,29 @@ import org.easymock.Capture; import org.junit.Assert; import org.junit.Test; +import java.util.Collection; +import java.util.Collections; +import java.util.HashMap; +import java.util.HashSet; +import java.util.LinkedHashMap; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import static org.easymock.EasyMock.anyBoolean; +import static org.easymock.EasyMock.anyObject; +import static org.easymock.EasyMock.capture; +import static org.easymock.EasyMock.createMock; +import static org.easymock.EasyMock.createNiceMock; +import static org.easymock.EasyMock.createStrictMock; +import static org.easymock.EasyMock.eq; +import static org.easymock.EasyMock.expect; +import static org.easymock.EasyMock.isNull; +import static org.easymock.EasyMock.replay; +import static org.easymock.EasyMock.reset; +import static org.easymock.EasyMock.verify; + /** * ServiceResourceProvider tests. */ @@ -958,6 +957,176 @@ public class ServiceResourceProviderTest { } @Test + public void testHiveServiceState_INSTALLED() throws Exception { + AmbariManagementController managementController = createMock(AmbariManagementController.class); + Clusters clusters = createNiceMock(Clusters.class); + Cluster cluster = createNiceMock(Cluster.class); + AmbariMetaInfo ambariMetaInfo = createNiceMock(AmbariMetaInfo.class); + StackId stackId = createNiceMock(StackId.class); + ComponentInfo componentInfo = createNiceMock(ComponentInfo.class); + + ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse("C1", "HIVE", "HCAT", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr2 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_METASTORE", "Host101", "INSTALLED", "", null, null, null); + ServiceComponentHostResponse shr3 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_CLIENT", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr4 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_SERVER", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr5 = new ServiceComponentHostResponse("C1", "HIVE", "MYSQL_SERVER", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr6 = new ServiceComponentHostResponse("C1", "HIVE", "WEBHCAT_SERVER", "Host100", "STARTED", "", null, null, null); + + Set<ServiceComponentHostResponse> responses = new LinkedHashSet<ServiceComponentHostResponse>(); + responses.add(shr1); + responses.add(shr2); + responses.add(shr3); + responses.add(shr4); + responses.add(shr5); + responses.add(shr6); + + // set expectations + expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes(); + expect(managementController.getClusters()).andReturn(clusters).anyTimes(); + expect(clusters.getCluster("C1")).andReturn(cluster).anyTimes(); + expect(managementController.getHostComponents((Set<ServiceComponentHostRequest>) anyObject())).andReturn(responses).anyTimes(); + expect(cluster.getDesiredStackVersion()).andReturn(stackId); + + expect(stackId.getStackName()).andReturn("S1").anyTimes(); + expect(stackId.getStackVersion()).andReturn("V1").anyTimes(); + + expect(ambariMetaInfo.getComponent((String) anyObject(), (String) anyObject(), + (String) anyObject(), (String) anyObject())).andReturn(componentInfo).anyTimes(); + + expect(componentInfo.isMaster()).andReturn(false); + expect(componentInfo.isMaster()).andReturn(true); + expect(componentInfo.isMaster()).andReturn(false); + expect(componentInfo.isMaster()).andReturn(true); + expect(componentInfo.isMaster()).andReturn(true); + expect(componentInfo.isMaster()).andReturn(true); + + // replay + replay(managementController, clusters, cluster, ambariMetaInfo, stackId, componentInfo); + + ServiceResourceProvider.ServiceState serviceState = new ServiceResourceProvider.HiveServiceState(); + + State state = serviceState.getState(managementController, "C1", "HIVE"); + Assert.assertEquals(State.INSTALLED, state); + + // verify + verify(managementController, clusters, cluster, ambariMetaInfo, stackId, componentInfo); + } + + @Test + public void testHiveServiceState_STARTED() throws Exception { + AmbariManagementController managementController = createMock(AmbariManagementController.class); + Clusters clusters = createNiceMock(Clusters.class); + Cluster cluster = createNiceMock(Cluster.class); + AmbariMetaInfo ambariMetaInfo = createNiceMock(AmbariMetaInfo.class); + StackId stackId = createNiceMock(StackId.class); + ComponentInfo componentInfo = createNiceMock(ComponentInfo.class); + + ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse("C1", "HIVE", "HCAT", "Host100", "INSTALLED", "", null, null, null); + ServiceComponentHostResponse shr2 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_METASTORE", "Host101", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr3 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_CLIENT", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr4 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_SERVER", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr5 = new ServiceComponentHostResponse("C1", "HIVE", "MYSQL_SERVER", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr6 = new ServiceComponentHostResponse("C1", "HIVE", "WEBHCAT_SERVER", "Host100", "STARTED", "", null, null, null); + + Set<ServiceComponentHostResponse> responses = new LinkedHashSet<ServiceComponentHostResponse>(); + responses.add(shr1); + responses.add(shr2); + responses.add(shr3); + responses.add(shr4); + responses.add(shr5); + responses.add(shr6); + + // set expectations + expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes(); + expect(managementController.getClusters()).andReturn(clusters).anyTimes(); + expect(clusters.getCluster("C1")).andReturn(cluster).anyTimes(); + expect(managementController.getHostComponents((Set<ServiceComponentHostRequest>) anyObject())).andReturn(responses).anyTimes(); + expect(cluster.getDesiredStackVersion()).andReturn(stackId); + + expect(stackId.getStackName()).andReturn("S1").anyTimes(); + expect(stackId.getStackVersion()).andReturn("V1").anyTimes(); + + expect(ambariMetaInfo.getComponent((String) anyObject(), (String) anyObject(), + (String) anyObject(), (String) anyObject())).andReturn(componentInfo).anyTimes(); + + expect(componentInfo.isMaster()).andReturn(false); + expect(componentInfo.isMaster()).andReturn(true); + expect(componentInfo.isMaster()).andReturn(false); + expect(componentInfo.isMaster()).andReturn(true); + expect(componentInfo.isMaster()).andReturn(true); + expect(componentInfo.isMaster()).andReturn(true); + + // replay + replay(managementController, clusters, cluster, ambariMetaInfo, stackId, componentInfo); + + ServiceResourceProvider.ServiceState serviceState = new ServiceResourceProvider.HiveServiceState(); + + State state = serviceState.getState(managementController, "C1", "HIVE"); + Assert.assertEquals(State.STARTED, state); + + // verify + verify(managementController, clusters, cluster, ambariMetaInfo, stackId, componentInfo); + } + + @Test + public void testHiveServiceState_STARTED_HA() throws Exception { + AmbariManagementController managementController = createMock(AmbariManagementController.class); + Clusters clusters = createNiceMock(Clusters.class); + Cluster cluster = createNiceMock(Cluster.class); + AmbariMetaInfo ambariMetaInfo = createNiceMock(AmbariMetaInfo.class); + StackId stackId = createNiceMock(StackId.class); + ComponentInfo componentInfo = createNiceMock(ComponentInfo.class); + + ServiceComponentHostResponse shr1 = new ServiceComponentHostResponse("C1", "HIVE", "HCAT", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr2 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_METASTORE", "Host101", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr3 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_METASTORE", "Host101", "INSTALLED", "", null, null, null); + ServiceComponentHostResponse shr4 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_CLIENT", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr5 = new ServiceComponentHostResponse("C1", "HIVE", "HIVE_SERVER", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr6 = new ServiceComponentHostResponse("C1", "HIVE", "MYSQL_SERVER", "Host100", "STARTED", "", null, null, null); + ServiceComponentHostResponse shr7 = new ServiceComponentHostResponse("C1", "HIVE", "WEBHCAT_SERVER", "Host100", "STARTED", "", null, null, null); + + Set<ServiceComponentHostResponse> responses = new LinkedHashSet<ServiceComponentHostResponse>(); + responses.add(shr1); + responses.add(shr2); + responses.add(shr3); + responses.add(shr4); + responses.add(shr5); + responses.add(shr6); + responses.add(shr7); + + // set expectations + expect(managementController.getAmbariMetaInfo()).andReturn(ambariMetaInfo).anyTimes(); + expect(managementController.getClusters()).andReturn(clusters).anyTimes(); + expect(clusters.getCluster("C1")).andReturn(cluster).anyTimes(); + expect(managementController.getHostComponents((Set<ServiceComponentHostRequest>) anyObject())).andReturn(responses).anyTimes(); + expect(cluster.getDesiredStackVersion()).andReturn(stackId); + + expect(stackId.getStackName()).andReturn("S1").anyTimes(); + expect(stackId.getStackVersion()).andReturn("V1").anyTimes(); + + expect(ambariMetaInfo.getComponent((String) anyObject(), (String) anyObject(), + (String) anyObject(), (String) anyObject())).andReturn(componentInfo).anyTimes(); + + expect(componentInfo.isMaster()).andReturn(false); + expect(componentInfo.isMaster()).andReturn(true); + expect(componentInfo.isMaster()).andReturn(false); + expect(componentInfo.isMaster()).andReturn(true); + expect(componentInfo.isMaster()).andReturn(true); + expect(componentInfo.isMaster()).andReturn(true); + + // replay + replay(managementController, clusters, cluster, ambariMetaInfo, stackId, componentInfo); + + ServiceResourceProvider.ServiceState serviceState = new ServiceResourceProvider.HiveServiceState(); + + State state = serviceState.getState(managementController, "C1", "HIVE"); + Assert.assertEquals(State.STARTED, state); + + // verify + verify(managementController, clusters, cluster, ambariMetaInfo, stackId, componentInfo); + } + + @Test public void testHBaseServiceState_STARTED() throws Exception{ AmbariManagementController managementController = createMock(AmbariManagementController.class); Clusters clusters = createNiceMock(Clusters.class);
