Return-Path: X-Original-To: archive-asf-public-internal@cust-asf2.ponee.io Delivered-To: archive-asf-public-internal@cust-asf2.ponee.io Received: from cust-asf.ponee.io (cust-asf.ponee.io [163.172.22.183]) by cust-asf2.ponee.io (Postfix) with ESMTP id 0CBF9200B91 for ; Thu, 29 Sep 2016 16:29:07 +0200 (CEST) Received: by cust-asf.ponee.io (Postfix) id 0B8BF160AE3; Thu, 29 Sep 2016 14:29:07 +0000 (UTC) Delivered-To: archive-asf-public@cust-asf.ponee.io Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by cust-asf.ponee.io (Postfix) with SMTP id 8568A160AD7 for ; Thu, 29 Sep 2016 16:29:04 +0200 (CEST) Received: (qmail 21421 invoked by uid 500); 29 Sep 2016 14:29:03 -0000 Mailing-List: contact commits-help@ambari.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: ambari-dev@ambari.apache.org Delivered-To: mailing list commits@ambari.apache.org Received: (qmail 21412 invoked by uid 99); 29 Sep 2016 14:29:03 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 29 Sep 2016 14:29:03 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 7EF33E0329; Thu, 29 Sep 2016 14:29:03 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: ncole@apache.org To: commits@ambari.apache.org Date: Thu, 29 Sep 2016 14:29:03 -0000 Message-Id: <08c56907b0ba4497ad2f60d5e57a7aa5@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [01/11] ambari git commit: AMBARI-18483. Revert db optimization in UT.(vbrodetskyi) archived-at: Thu, 29 Sep 2016 14:29:07 -0000 Repository: ambari Updated Branches: refs/heads/branch-dev-patch-upgrade 75a91e35a -> 71c4c17a1 AMBARI-18483. Revert db optimization in UT.(vbrodetskyi) Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/392a752d Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/392a752d Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/392a752d Branch: refs/heads/branch-dev-patch-upgrade Commit: 392a752d27ce3d0dd7e044ce8c4ab5e9d10f6e74 Parents: 06282e0 Author: Vitaly Brodetskyi Authored: Wed Sep 28 14:02:38 2016 +0300 Committer: Vitaly Brodetskyi Committed: Wed Sep 28 14:03:08 2016 +0300 ---------------------------------------------------------------------- .../server/agent/TestHeartbeatMonitor.java | 32 +- ...ThreadPoolExecutorCompletionServiceTest.java | 2 +- .../apache/ambari/server/orm/OrmTestHelper.java | 12 +- .../apache/ambari/server/orm/TestOrmImpl.java | 94 ++--- .../server/orm/dao/AlertDispatchDAOTest.java | 419 ++++++------------- .../security/authorization/TestUsers.java | 369 ++++++---------- .../upgrades/ConfigureActionTest.java | 104 ++--- .../upgrades/UpgradeActionTest.java | 150 ++----- .../apache/ambari/server/state/ServiceTest.java | 106 ++--- .../svccomphost/ServiceComponentHostTest.java | 167 +++----- .../server/upgrade/UpgradeCatalog210Test.java | 34 +- 11 files changed, 456 insertions(+), 1033 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java index 63460a2..d121fcb 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/agent/TestHeartbeatMonitor.java @@ -57,9 +57,7 @@ import org.apache.ambari.server.state.svccomphost.ServiceComponentHostInstallEve import org.apache.ambari.server.state.svccomphost.ServiceComponentHostOpSucceededEvent; import org.apache.ambari.server.state.svccomphost.ServiceComponentHostStartedEvent; import org.junit.After; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import org.mockito.ArgumentCaptor; import org.slf4j.Logger; @@ -68,7 +66,6 @@ import org.slf4j.LoggerFactory; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.persist.PersistService; -import com.google.inject.persist.UnitOfWork; public class TestHeartbeatMonitor { @@ -86,44 +83,19 @@ public class TestHeartbeatMonitor { private static final Logger LOG = LoggerFactory.getLogger(TestHeartbeatMonitor.class); - @BeforeClass - public static void classSetUp() { + @Before + public void setup() throws Exception { injector = Guice.createInjector(new InMemoryDefaultTestModule()); injector.getInstance(GuiceJpaInitializer.class); helper = injector.getInstance(OrmTestHelper.class); ambariMetaInfo = injector.getInstance(AmbariMetaInfo.class); } - @Before - public void setup() throws Exception { - cleanup(); - injector.getInstance(UnitOfWork.class).begin(); - } - @After public void teardown() { - injector.getInstance(UnitOfWork.class).end(); - } - - @AfterClass - public static void afterClass() throws Exception { injector.getInstance(PersistService.class).stop(); } - private void cleanup() throws AmbariException { - Clusters clusters = injector.getInstance(Clusters.class); - Map clusterMap = clusters.getClusters(); - - - for (String clusterName : clusterMap.keySet()) { - clusters.deleteCluster(clusterName); - } - - for (Host host : clusters.getHosts()) { - clusters.deleteHost(host.getHostName()); - } - } - private void setOsFamily(Host host, String osFamily, String osVersion) { Map hostAttributes = new HashMap(); hostAttributes.put("os_family", osFamily); http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/controller/test/BufferedThreadPoolExecutorCompletionServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/test/BufferedThreadPoolExecutorCompletionServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/test/BufferedThreadPoolExecutorCompletionServiceTest.java index ec99ab0..50ed33b 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/controller/test/BufferedThreadPoolExecutorCompletionServiceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/test/BufferedThreadPoolExecutorCompletionServiceTest.java @@ -31,7 +31,7 @@ import org.junit.Test; public class BufferedThreadPoolExecutorCompletionServiceTest { private void longOp() throws InterruptedException { - Thread.sleep(1000); + Thread.sleep(700); System.out.println("Completed " + Thread.currentThread()); } http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java index 1bfcfb9..de2d292 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java @@ -18,6 +18,8 @@ package org.apache.ambari.server.orm; +import javax.persistence.EntityManager; +import junit.framework.Assert; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertTrue; @@ -33,8 +35,6 @@ import java.util.Map; import java.util.Set; import java.util.UUID; -import javax.persistence.EntityManager; - import org.apache.ambari.server.AmbariException; import org.apache.ambari.server.Role; import org.apache.ambari.server.RoleCommand; @@ -96,8 +96,6 @@ import com.google.inject.Provider; import com.google.inject.Singleton; import com.google.inject.persist.Transactional; -import junit.framework.Assert; - @Singleton public class OrmTestHelper { @@ -501,7 +499,7 @@ public class OrmTestHelper { target.setTargetName("Target Name " + System.currentTimeMillis()); alertDispatchDAO.create(target); - return alertDispatchDAO.findTargetById(target.getTargetId()); + return target; } /** @@ -518,7 +516,7 @@ public class OrmTestHelper { target.setGlobal(true); alertDispatchDAO.create(target); - return alertDispatchDAO.findTargetById(target.getTargetId()); + return target; } /** @@ -563,7 +561,7 @@ public class OrmTestHelper { group.setAlertTargets(targets); alertDispatchDAO.create(group); - return alertDispatchDAO.findGroupById(group.getGroupId()); + return group; } /** http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java index e72692a..0f6d2e2 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/TestOrmImpl.java @@ -48,98 +48,57 @@ import org.apache.ambari.server.orm.entities.StackEntity; import org.apache.ambari.server.orm.entities.StageEntity; import org.apache.ambari.server.security.authorization.ResourceType; import org.junit.After; -import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; -import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Guice; +import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.persist.PersistService; -import com.google.inject.persist.UnitOfWork; public class TestOrmImpl extends Assert { private static final Logger log = LoggerFactory.getLogger(TestOrmImpl.class); + @Inject + private Injector injector; + @Inject + private StackDAO stackDAO; + @Inject + private ResourceTypeDAO resourceTypeDAO; + @Inject + private ClusterDAO clusterDAO; + @Inject + private OrmTestHelper ormTestHelper; + @Inject + private ClusterServiceDAO clusterServiceDAO; + @Inject + private HostRoleCommandDAO hostRoleCommandDAO; + @Inject + private HostDAO hostDAO; + @Inject + private StageDAO stageDAO; + @Inject + private EntityManager entityManager; + @Inject + private RequestDAO requestDAO; - private static Injector injector; - private static StackDAO stackDAO; - private static ResourceTypeDAO resourceTypeDAO; - private static ClusterDAO clusterDAO; - private static OrmTestHelper ormTestHelper; - private static ClusterServiceDAO clusterServiceDAO; - private static HostRoleCommandDAO hostRoleCommandDAO; - private static HostDAO hostDAO; - private static StageDAO stageDAO; - private static EntityManager entityManager; - private static RequestDAO requestDAO; - - @BeforeClass - public static void classSetUp() throws Exception { + @Before + public void setup() { injector = Guice.createInjector(new InMemoryDefaultTestModule()); injector.getInstance(GuiceJpaInitializer.class); - + injector.injectMembers(this); // required to load stack information into the DB injector.getInstance(AmbariMetaInfo.class); - stackDAO = injector.getInstance(StackDAO.class); - resourceTypeDAO = injector.getInstance(ResourceTypeDAO.class); - clusterDAO = injector.getInstance(ClusterDAO.class); - ormTestHelper = injector.getInstance(OrmTestHelper.class); - clusterServiceDAO = injector.getInstance(ClusterServiceDAO.class); - hostRoleCommandDAO = injector.getInstance(HostRoleCommandDAO.class); - hostDAO = injector.getInstance(HostDAO.class); - stageDAO = injector.getInstance(StageDAO.class); - entityManager = injector.getInstance(EntityManager.class); - requestDAO = injector.getInstance(RequestDAO.class); - ormTestHelper.createDefaultData(); - injector.getInstance(UnitOfWork.class).end(); - } - - @Before - public void setup() { - injector.getInstance(UnitOfWork.class).begin(); } @After public void teardown() { - injector.getInstance(UnitOfWork.class).end(); - cleanup(); - } - - @AfterClass - public static void afterClass() throws Exception { injector.getInstance(PersistService.class).stop(); } - private void cleanup() { - - - List hostRoleCommandEntities = hostRoleCommandDAO.findAll(); - if (hostRoleCommandEntities != null) { - for (HostRoleCommandEntity hostRoleCommandEntity : hostRoleCommandEntities) { - hostRoleCommandDAO.remove(hostRoleCommandEntity); - } - } - - List stageEntities = stageDAO.findAll(); - if (stageEntities != null) { - for (StageEntity stageEntity : stageEntities) { - stageDAO.remove(stageEntity); - } - } - - List requestEntities = requestDAO.findAll(); - if (requestEntities != null) { - for (RequestEntity requestEntity : requestEntities) { - requestDAO.remove(requestEntity); - } - } - } - /** * persistence provider is responsible for returning empty collection if relation doesn't exists */ @@ -333,7 +292,6 @@ public class TestOrmImpl extends Assert { assertEquals(1L, stageDAO.getLastRequestId()); } - @Ignore @Test public void testConcurrentModification() throws InterruptedException { final StackEntity stackEntity = stackDAO.find("HDP", "2.2.0"); http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java index 5697ba0..87afb38 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/AlertDispatchDAOTest.java @@ -52,12 +52,9 @@ import org.apache.ambari.server.orm.entities.AlertGroupEntity; import org.apache.ambari.server.orm.entities.AlertHistoryEntity; import org.apache.ambari.server.orm.entities.AlertNoticeEntity; import org.apache.ambari.server.orm.entities.AlertTargetEntity; -import org.apache.ambari.server.orm.entities.HostComponentDesiredStateEntity; -import org.apache.ambari.server.orm.entities.HostComponentStateEntity; import org.apache.ambari.server.state.AlertState; import org.apache.ambari.server.state.Cluster; import org.apache.ambari.server.state.Clusters; -import org.apache.ambari.server.state.Host; import org.apache.ambari.server.state.NotificationState; import org.apache.ambari.server.state.ServiceComponentFactory; import org.apache.ambari.server.state.ServiceComponentHostFactory; @@ -66,9 +63,7 @@ import org.apache.ambari.server.state.alert.Scope; import org.apache.ambari.server.state.alert.SourceType; import org.apache.ambari.server.utils.EventBusSynchronizer; import org.junit.After; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import com.google.inject.Guice; @@ -83,25 +78,30 @@ public class AlertDispatchDAOTest { private final static String HOSTNAME = "c6401.ambari.apache.org"; - private static Clusters m_clusters; - private static Cluster m_cluster; - private static Injector m_injector; - private static AlertDispatchDAO m_dao; - private static AlertDefinitionDAO m_definitionDao; - private static AlertsDAO m_alertsDao; - private static OrmTestHelper m_helper; - private static HostComponentDesiredStateDAO hostComponentDesiredStateDAO; - private static HostComponentStateDAO hostComponentStateDAO; - - private static ServiceFactory m_serviceFactory; - private static ServiceComponentFactory m_componentFactory; - private static ServiceComponentHostFactory m_schFactory; - private static AlertDaoHelper m_alertHelper; - - @BeforeClass - public static void classSetUp() throws Exception { + private Clusters m_clusters; + private Cluster m_cluster; + private Injector m_injector; + private AlertDispatchDAO m_dao; + private AlertDefinitionDAO m_definitionDao; + private AlertsDAO m_alertsDao; + private OrmTestHelper m_helper; + private HostComponentDesiredStateDAO hostComponentDesiredStateDAO; + private HostComponentStateDAO hostComponentStateDAO; + + private ServiceFactory m_serviceFactory; + private ServiceComponentFactory m_componentFactory; + private ServiceComponentHostFactory m_schFactory; + private AlertDaoHelper m_alertHelper; + + /** + * + */ + @Before + public void setup() throws Exception { m_injector = Guice.createInjector(new InMemoryDefaultTestModule()); m_injector.getInstance(GuiceJpaInitializer.class); + m_injector.getInstance(UnitOfWork.class).begin(); + m_dao = m_injector.getInstance(AlertDispatchDAO.class); m_alertsDao = m_injector.getInstance(AlertsDAO.class); @@ -112,8 +112,7 @@ public class AlertDispatchDAOTest { m_schFactory = m_injector.getInstance(ServiceComponentHostFactory.class); m_clusters = m_injector.getInstance(Clusters.class); m_alertHelper = m_injector.getInstance(AlertDaoHelper.class); - hostComponentDesiredStateDAO = m_injector.getInstance(HostComponentDesiredStateDAO.class); - hostComponentStateDAO = m_injector.getInstance(HostComponentStateDAO.class); + // !!! need a synchronous op for testing EventBusSynchronizer.synchronizeAmbariEventPublisher(m_injector); @@ -123,77 +122,18 @@ public class AlertDispatchDAOTest { } /** - * - */ - @Before - public void setup() throws Exception { - m_injector.getInstance(UnitOfWork.class).begin(); - } - - /** * @throws Exception */ @After public void teardown() throws Exception { m_injector.getInstance(UnitOfWork.class).end(); - cleanup(); - } - - @AfterClass - public static void afterClass() throws Exception { m_injector.getInstance(PersistService.class).stop(); } - private void cleanup() throws AmbariException { - List alertGroupEntities = m_dao.findAllGroups(); - if (alertGroupEntities != null) { - for (AlertGroupEntity alertGroupEntity : alertGroupEntities) { - m_dao.remove(alertGroupEntity); - } - } - - List alertTargetEntities = m_dao.findAllTargets(); - if (alertTargetEntities != null) { - for (AlertTargetEntity alertTargetEntity : alertTargetEntities) { - m_dao.remove(alertTargetEntity); - } - } - - List hostComponentDesiredStateEntities = hostComponentDesiredStateDAO.findAll(); - if (hostComponentDesiredStateEntities != null) { - for (HostComponentDesiredStateEntity hcdse : hostComponentDesiredStateEntities) { - hostComponentDesiredStateDAO.remove(hcdse); - } - } - - List hostComponentStateEntities = hostComponentStateDAO.findAll(); - if (hostComponentStateEntities != null) { - for (HostComponentStateEntity hcse : hostComponentStateEntities) { - hostComponentStateDAO.remove(hcse); - } - } - - List alertDefinitionEntities = m_definitionDao.findAll(); - if (alertDefinitionEntities != null) { - for (AlertDefinitionEntity alertDefinitionEntity : alertDefinitionEntities) { - m_definitionDao.remove(alertDefinitionEntity); - } - } - - m_cluster.deleteAllServices(); - - List hosts = m_clusters.getHosts(); - if (hosts != null) { - for (Host host : hosts) { - m_clusters.deleteHost(host.getHostName()); - } - } - } - private void initTestData() throws Exception { Set targets = createTargets(); - for (int i = 0; i < 10; i++) { + for (int i = 0; i < 2; i++) { AlertGroupEntity group = new AlertGroupEntity(); group.setDefault(false); group.setGroupName("Group Name " + i); @@ -210,28 +150,26 @@ public class AlertDispatchDAOTest { * */ @Test - public void testFindAllTargets() throws Exception { + public void testFindTargets() throws Exception { initTestData(); + // find all targets List targets = m_dao.findAllTargets(); assertNotNull(targets); - assertEquals(5, targets.size()); - } - - /** - * @throws Exception - */ - public void testFindTargetsByIds() throws Exception { - List targets = m_dao.findAllTargets(); - assertNotNull(targets); - assertEquals(5, targets.size()); + assertEquals(1, targets.size()); + // find by ids List ids = new ArrayList(); ids.add(targets.get(0).getTargetId()); - ids.add(targets.get(1).getTargetId()); ids.add(99999L); targets = m_dao.findTargetsById(ids); - assertEquals(2, targets.size()); + assertEquals(1, targets.size()); + + //find by name + AlertTargetEntity target = targets.get(0); + + AlertTargetEntity actual = m_dao.findTargetByName(target.getTargetName()); + assertEquals(target, actual); } /** @@ -259,53 +197,22 @@ public class AlertDispatchDAOTest { * */ @Test - public void testFindTargetByName() throws Exception { - initTestData(); - List targets = m_dao.findAllTargets(); - assertNotNull(targets); - AlertTargetEntity target = targets.get(3); - - AlertTargetEntity actual = m_dao.findTargetByName(target.getTargetName()); - assertEquals(target, actual); - } - - /** - * - */ - @Test - public void testFindAllGroups() throws Exception { + public void testFindGroups() throws Exception { initTestData(); + // find all List groups = m_dao.findAllGroups(); assertNotNull(groups); - assertEquals(10, groups.size()); - } + assertEquals(2, groups.size()); - /** - * - */ - @Test - public void testFindGroupByName() throws Exception { - initTestData(); - List groups = m_dao.findAllGroups(); - assertNotNull(groups); - AlertGroupEntity group = groups.get(3); + //find by name + AlertGroupEntity group = groups.get(1); AlertGroupEntity actual = m_dao.findGroupByName(group.getClusterId(), - group.getGroupName()); + group.getGroupName()); assertEquals(group, actual); - } - - /** - * @throws Exception - */ - @Test - public void testFindGroupsByIds() throws Exception { - initTestData(); - List groups = m_dao.findAllGroups(); - assertNotNull(groups); - assertEquals(10, groups.size()); + //find by id List ids = new ArrayList(); ids.add(groups.get(0).getGroupId()); ids.add(groups.get(1).getGroupId()); @@ -313,13 +220,28 @@ public class AlertDispatchDAOTest { groups = m_dao.findGroupsById(ids); assertEquals(2, groups.size()); + + // find default group + for (AlertGroupEntity alertGroupEntity : groups) { + assertFalse(alertGroupEntity.isDefault()); + } + + Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, + m_componentFactory, m_schFactory, HOSTNAME); + + AlertGroupEntity hdfsGroup = m_dao.findDefaultServiceGroup( + cluster.getClusterId(), "HDFS"); + + assertNotNull(hdfsGroup); + assertTrue(hdfsGroup.isDefault()); } /** * */ @Test - public void testCreateGroup() throws Exception { + public void testCreateUpdateRemoveGroup() throws Exception { + // create group AlertTargetEntity target = m_helper.createAlertTarget(); Set targets = new HashSet(); targets.add(target); @@ -333,15 +255,47 @@ public class AlertDispatchDAOTest { assertEquals(group.isDefault(), actual.isDefault()); assertEquals(group.getAlertTargets(), actual.getAlertTargets()); assertEquals(group.getAlertDefinitions(), actual.getAlertDefinitions()); - } + // update group + AlertGroupEntity group1 = m_helper.createAlertGroup( + m_cluster.getClusterId(), null); + + String groupName = group1.getGroupName(); + + group1 = m_dao.findGroupById(group1.getGroupId()); + group1.setGroupName(groupName + "FOO"); + group1.setDefault(true); + + m_dao.merge(group1); + group = m_dao.findGroupById(group1.getGroupId()); + + assertEquals(groupName + "FOO", group1.getGroupName()); + assertEquals(true, group1.isDefault()); + assertEquals(0, group1.getAlertDefinitions().size()); + assertEquals(0, group1.getAlertTargets().size()); + + group1.addAlertTarget(target); + m_dao.merge(group); + + group1 = m_dao.findGroupById(group1.getGroupId()); + assertEquals(targets, group1.getAlertTargets()); + + // delete group + m_dao.remove(group); + group = m_dao.findGroupById(group.getGroupId()); + assertNull(group); + target = m_dao.findTargetById(target.getTargetId()); + assertNotNull(target); + assertEquals(1, m_dao.findAllTargets().size()); + } /** * */ @Test - public void testCreateTarget() throws Exception { + public void testCreateAndRemoveTarget() throws Exception { + // create target int targetCount = m_dao.findAllTargets().size(); AlertTargetEntity target = m_helper.createAlertTarget(); @@ -367,6 +321,13 @@ public class AlertDispatchDAOTest { assertEquals(group, actualGroup); assertEquals(targetCount + 1, m_dao.findAllTargets().size()); + + // remove target + m_dao.remove(target); + + target = m_dao.findTargetById(target.getTargetId()); + assertNull(target); + } /** @@ -426,57 +387,6 @@ public class AlertDispatchDAOTest { } /** - * - */ - @Test - public void testDeleteGroup() throws Exception { - int targetCount = m_dao.findAllTargets().size(); - - AlertGroupEntity group = m_helper.createAlertGroup( - m_cluster.getClusterId(), null); - AlertTargetEntity target = m_helper.createAlertTarget(); - assertEquals(targetCount + 1, m_dao.findAllTargets().size()); - - group = m_dao.findGroupById(group.getGroupId()); - assertNotNull(group); - assertNotNull(group.getAlertTargets()); - assertEquals(0, group.getAlertTargets().size()); - - group.addAlertTarget(target); - m_dao.merge(group); - - group = m_dao.findGroupById(group.getGroupId()); - assertNotNull(group); - assertNotNull(group.getAlertTargets()); - assertEquals(1, group.getAlertTargets().size()); - - m_dao.remove(group); - group = m_dao.findGroupById(group.getGroupId()); - assertNull(group); - - target = m_dao.findTargetById(target.getTargetId()); - assertNotNull(target); - assertEquals(targetCount + 1, m_dao.findAllTargets().size()); - } - - /** - * - */ - @Test - public void testDeleteTarget() throws Exception { - AlertTargetEntity target = m_helper.createAlertTarget(); - target = m_dao.findTargetById(target.getTargetId()); - assertTrue(target.getAlertStates().size() > 0); - - assertNotNull(target); - - m_dao.remove(target); - - target = m_dao.findTargetById(target.getTargetId()); - assertNull(target); - } - - /** * */ @Test @@ -544,39 +454,6 @@ public class AlertDispatchDAOTest { } /** - * - */ - @Test - public void testUpdateGroup() throws Exception { - AlertTargetEntity target = m_helper.createAlertTarget(); - Set targets = new HashSet(); - targets.add(target); - - String groupName = "Group Name " + System.currentTimeMillis(); - - AlertGroupEntity group = m_helper.createAlertGroup( - m_cluster.getClusterId(), null); - - group = m_dao.findGroupById(group.getGroupId()); - group.setGroupName(groupName + "FOO"); - group.setDefault(true); - - m_dao.merge(group); - group = m_dao.findGroupById(group.getGroupId()); - - assertEquals(groupName + "FOO", group.getGroupName()); - assertEquals(true, group.isDefault()); - assertEquals(0, group.getAlertDefinitions().size()); - assertEquals(0, group.getAlertTargets().size()); - - group.addAlertTarget(target); - m_dao.merge(group); - - group = m_dao.findGroupById(group.getGroupId()); - assertEquals(targets, group.getAlertTargets()); - } - - /** * Tests finding groups by a definition ID that they are associatd with. * * @throws Exception @@ -686,10 +563,11 @@ public class AlertDispatchDAOTest { */ @Test public void testAlertNoticePredicate() throws Exception { - Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, - m_componentFactory, m_schFactory, HOSTNAME); + m_helper.addHost(m_clusters, m_cluster, HOSTNAME); + m_helper.installHdfsService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + m_helper.installYarnService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); - m_alertHelper.populateData(cluster); + m_alertHelper.populateData(m_cluster); Predicate clusterPredicate = null; Predicate hdfsPredicate = null; @@ -764,10 +642,11 @@ public class AlertDispatchDAOTest { */ @Test public void testAlertNoticePagination() throws Exception { - Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, - m_componentFactory, m_schFactory, HOSTNAME); + m_helper.addHost(m_clusters, m_cluster, HOSTNAME); + m_helper.installHdfsService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + m_helper.installYarnService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); - m_alertHelper.populateData(cluster); + m_alertHelper.populateData(m_cluster); AlertNoticeRequest request = new AlertNoticeRequest(); request.Pagination = null; @@ -805,10 +684,11 @@ public class AlertDispatchDAOTest { */ @Test public void testAlertNoticeSorting() throws Exception { - Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, - m_componentFactory, m_schFactory, HOSTNAME); + m_helper.addHost(m_clusters, m_cluster, HOSTNAME); + m_helper.installHdfsService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + m_helper.installYarnService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); - m_alertHelper.populateData(cluster); + m_alertHelper.populateData(m_cluster); List sortProperties = new ArrayList(); SortRequest sortRequest = new SortRequestImpl(sortProperties); @@ -864,57 +744,25 @@ public class AlertDispatchDAOTest { } /** - * - */ - @Test - public void testFindDefaultGroup() throws Exception { - initTestData(); - List groups = m_dao.findAllGroups(); - assertNotNull(groups); - assertEquals(10, groups.size()); - - for (AlertGroupEntity group : groups) { - assertFalse(group.isDefault()); - } - - Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, - m_componentFactory, m_schFactory, HOSTNAME); - - AlertGroupEntity hdfsGroup = m_dao.findDefaultServiceGroup( - cluster.getClusterId(), "HDFS"); - - assertNotNull(hdfsGroup); - assertTrue(hdfsGroup.isDefault()); - } - - /** * Tests that when creating a new {@link AlertDefinitionEntity}, if the group * for its service does not exist, then it will be created. */ @Test public void testDefaultGroupAutomaticCreation() throws Exception { - initTestData(); - List groups = m_dao.findAllGroups(); - assertNotNull(groups); - assertEquals(10, groups.size()); - - for (AlertGroupEntity group : groups) { - assertFalse(group.isDefault()); - } - - Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, - m_componentFactory, m_schFactory, HOSTNAME); + m_helper.addHost(m_clusters, m_cluster, HOSTNAME); + m_helper.installHdfsService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + //m_helper.installYarnService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); AlertGroupEntity hdfsGroup = m_dao.findDefaultServiceGroup( - cluster.getClusterId(), "HDFS"); + m_cluster.getClusterId(), "HDFS"); // remove the HDFS default group m_dao.remove(hdfsGroup); - hdfsGroup = m_dao.findDefaultServiceGroup(cluster.getClusterId(), "HDFS"); + hdfsGroup = m_dao.findDefaultServiceGroup(m_cluster.getClusterId(), "HDFS"); assertNull(hdfsGroup); AlertDefinitionEntity datanodeProcess = new AlertDefinitionEntity(); - datanodeProcess.setClusterId(cluster.getClusterId()); + datanodeProcess.setClusterId(m_cluster.getClusterId()); datanodeProcess.setDefinitionName("datanode_process"); datanodeProcess.setServiceName("HDFS"); datanodeProcess.setComponentName("DATANODE"); @@ -926,7 +774,7 @@ public class AlertDispatchDAOTest { m_definitionDao.create(datanodeProcess); // the group should be created and should be default - hdfsGroup = m_dao.findDefaultServiceGroup(cluster.getClusterId(), "HDFS"); + hdfsGroup = m_dao.findDefaultServiceGroup(m_cluster.getClusterId(), "HDFS"); assertNotNull(hdfsGroup); assertTrue(hdfsGroup.isDefault()); } @@ -939,22 +787,15 @@ public class AlertDispatchDAOTest { @Test(expected = AmbariException.class) public void testDefaultGroupInvalidServiceNoCreation() throws Exception { initTestData(); - List groups = m_dao.findAllGroups(); - assertNotNull(groups); - assertEquals(10, groups.size()); - - for (AlertGroupEntity group : groups) { - assertFalse(group.isDefault()); - } - - Cluster cluster = m_helper.buildNewCluster(m_clusters, m_serviceFactory, - m_componentFactory, m_schFactory, HOSTNAME); + m_helper.addHost(m_clusters, m_cluster, HOSTNAME); + m_helper.installHdfsService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); + //m_helper.installYarnService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); - assertEquals(12, m_dao.findAllGroups().size()); + assertEquals(3, m_dao.findAllGroups().size()); // create a definition with an invalid service AlertDefinitionEntity datanodeProcess = new AlertDefinitionEntity(); - datanodeProcess.setClusterId(cluster.getClusterId()); + datanodeProcess.setClusterId(m_cluster.getClusterId()); datanodeProcess.setDefinitionName("datanode_process"); datanodeProcess.setServiceName("INVALID"); datanodeProcess.setComponentName("DATANODE"); @@ -968,8 +809,7 @@ public class AlertDispatchDAOTest { m_definitionDao.create(datanodeProcess); } finally { // assert no group was added - assertEquals(12, m_dao.findAllGroups().size()); - teardown(); + assertEquals(3, m_dao.findAllGroups().size()); } } @@ -985,7 +825,9 @@ public class AlertDispatchDAOTest { m_helper.installYarnService(m_cluster, m_serviceFactory, m_componentFactory, m_schFactory, HOSTNAME); - for (int i = 0; i < 8; i++) { + List alertDefinitionEntities = new ArrayList<>(); + + for (int i = 0; i < 2; i++) { AlertDefinitionEntity definition = new AlertDefinitionEntity(); definition.setDefinitionName("Alert Definition " + i); definition.setServiceName("YARN"); @@ -997,11 +839,10 @@ public class AlertDispatchDAOTest { definition.setSource("{\"type\" : \"SCRIPT\"}"); definition.setSourceType(SourceType.SCRIPT); m_definitionDao.create(definition); + alertDefinitionEntities.add(definition); } - List alertDefinitions = m_definitionDao.findAll(); - assertEquals(8, alertDefinitions.size()); - return alertDefinitions; + return alertDefinitionEntities; } /** @@ -1010,7 +851,7 @@ public class AlertDispatchDAOTest { */ private Set createTargets() throws Exception { Set targets = new HashSet(); - for (int i = 0; i < 5; i++) { + for (int i = 0; i < 1; i++) { AlertTargetEntity target = new AlertTargetEntity(); target.setDescription("Target Description " + i); target.setNotificationType("EMAIL"); http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java index a80cd03..f54ac5c 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestUsers.java @@ -43,9 +43,7 @@ import org.apache.ambari.server.orm.entities.ResourceEntity; import org.apache.ambari.server.orm.entities.ResourceTypeEntity; import org.apache.ambari.server.orm.entities.UserEntity; import org.junit.After; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.mockito.Mockito; @@ -55,102 +53,77 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.crypto.password.PasswordEncoder; import com.google.inject.Guice; +import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.persist.PersistService; public class TestUsers { - private static Injector injector; - - - protected static Users users; - protected static UserDAO userDAO; - protected static GroupDAO groupDAO; - protected static PermissionDAO permissionDAO; - protected static ResourceDAO resourceDAO; - protected static ResourceTypeDAO resourceTypeDAO; - protected static PrincipalTypeDAO principalTypeDAO; - protected static PrincipalDAO principalDAO; - protected static PasswordEncoder passwordEncoder; - - - @BeforeClass - public static void classSetUp() { - injector = Guice.createInjector(new InMemoryDefaultTestModule()); - injector.getInstance(GuiceJpaInitializer.class); - users = injector.getInstance(Users.class); - userDAO = injector.getInstance(UserDAO.class); - groupDAO = injector.getInstance(GroupDAO.class); - permissionDAO = injector.getInstance(PermissionDAO.class); - resourceDAO = injector.getInstance(ResourceDAO.class); - resourceTypeDAO = injector.getInstance(ResourceTypeDAO.class); - principalTypeDAO = injector.getInstance(PrincipalTypeDAO.class); - principalDAO = injector.getInstance(PrincipalDAO.class); - passwordEncoder = injector.getInstance(PasswordEncoder.class); - } + private Injector injector; + + @Inject + protected Users users; + @Inject + protected UserDAO userDAO; + @Inject + protected GroupDAO groupDAO; + @Inject + protected PermissionDAO permissionDAO; + @Inject + protected ResourceDAO resourceDAO; + @Inject + protected ResourceTypeDAO resourceTypeDAO; + @Inject + protected PrincipalTypeDAO principalTypeDAO; + @Inject + protected PrincipalDAO principalDAO; + @Inject + protected PasswordEncoder passwordEncoder; @Before public void setup() throws AmbariException { - //injector.injectMembers(this); + InMemoryDefaultTestModule module = new InMemoryDefaultTestModule(); + injector = Guice.createInjector(module); + injector.getInstance(GuiceJpaInitializer.class); + injector.injectMembers(this); Authentication auth = new UsernamePasswordAuthenticationToken("admin", null); SecurityContextHolder.getContext().setAuthentication(auth); - if (resourceTypeDAO.findByName(ResourceType.AMBARI.name()) == null) { - // create admin permission - ResourceTypeEntity resourceTypeEntity = new ResourceTypeEntity(); - resourceTypeEntity.setId(ResourceType.AMBARI.getId()); - resourceTypeEntity.setName(ResourceType.AMBARI.name()); - resourceTypeDAO.create(resourceTypeEntity); - - ResourceEntity resourceEntity = new ResourceEntity(); - resourceEntity.setId(ResourceEntity.AMBARI_RESOURCE_ID); - resourceEntity.setResourceType(resourceTypeEntity); - resourceDAO.create(resourceEntity); - - PrincipalTypeEntity principalTypeEntity = new PrincipalTypeEntity(); - principalTypeEntity.setName("ROLE"); - principalTypeEntity = principalTypeDAO.merge(principalTypeEntity); - - PrincipalEntity principalEntity = new PrincipalEntity(); - principalEntity.setPrincipalType(principalTypeEntity); - principalEntity = principalDAO.merge(principalEntity); - - PermissionEntity adminPermissionEntity = new PermissionEntity(); - adminPermissionEntity.setId(PermissionEntity.AMBARI_ADMINISTRATOR_PERMISSION); - adminPermissionEntity.setPermissionName(PermissionEntity.AMBARI_ADMINISTRATOR_PERMISSION_NAME); - adminPermissionEntity.setPrincipal(principalEntity); - adminPermissionEntity.setResourceType(resourceTypeEntity); - permissionDAO.create(adminPermissionEntity); - - users.createUser("admin", "admin", UserType.LOCAL, true, true); - } - cleanup(); - } + // create admin permission + ResourceTypeEntity resourceTypeEntity = new ResourceTypeEntity(); + resourceTypeEntity.setId(ResourceType.AMBARI.getId()); + resourceTypeEntity.setName(ResourceType.AMBARI.name()); + resourceTypeDAO.create(resourceTypeEntity); - @After - public void tearDown() throws AmbariException { + ResourceEntity resourceEntity = new ResourceEntity(); + resourceEntity.setId(ResourceEntity.AMBARI_RESOURCE_ID); + resourceEntity.setResourceType(resourceTypeEntity); + resourceDAO.create(resourceEntity); + + PrincipalTypeEntity principalTypeEntity = new PrincipalTypeEntity(); + principalTypeEntity.setName("ROLE"); + principalTypeEntity = principalTypeDAO.merge(principalTypeEntity); + + PrincipalEntity principalEntity = new PrincipalEntity(); + principalEntity.setPrincipalType(principalTypeEntity); + principalEntity = principalDAO.merge(principalEntity); + PermissionEntity adminPermissionEntity = new PermissionEntity(); + adminPermissionEntity.setId(PermissionEntity.AMBARI_ADMINISTRATOR_PERMISSION); + adminPermissionEntity.setPermissionName(PermissionEntity.AMBARI_ADMINISTRATOR_PERMISSION_NAME); + adminPermissionEntity.setPrincipal(principalEntity); + adminPermissionEntity.setResourceType(resourceTypeEntity); + permissionDAO.create(adminPermissionEntity); } - @AfterClass - public static void afterClass() throws Exception { + @After + public void tearDown() throws AmbariException { injector.getInstance(PersistService.class).stop(); } - private void cleanup() throws AmbariException { - for (User user : users.getAllUsers()) { - if (!user.getUserName().equals("admin")) { - users.removeUser(user); - } - } - - for (Group group : users.getAllGroups()) { - users.removeGroup(group); - } - } @Test public void testIsUserCanBeRemoved() throws Exception { - //users.createUser("admin", "admin", UserType.LOCAL, true, true); + users.createUser("admin", "admin", UserType.LOCAL, true, true); users.createUser("admin222", "admin222", UserType.LOCAL, true, true); Assert.assertTrue(users.isUserCanBeRemoved(userDAO.findUserByName("admin"))); @@ -168,19 +141,8 @@ public class TestUsers { } @Test - public void testGetUserIfUnique() throws Exception { - users.createUser("user333", "user333", UserType.LOCAL, true, false); - - Assert.assertNotNull(users.getUserIfUnique("user333")); - - users.createUser("user333", "user333", UserType.LDAP, true, false); - - Assert.assertNull(users.getUserIfUnique("user333")); - } - - @Test public void testModifyPassword_UserByAdmin() throws Exception { - users.createUser("new_admin", "new_admin", UserType.LOCAL, true, true); + users.createUser("admin", "admin", UserType.LOCAL, true, true); users.createUser("user", "user"); UserEntity userEntity = userDAO.findUserByName("user"); @@ -213,80 +175,81 @@ public class TestUsers { } @Test - public void testGetGroupMembers() throws Exception { - final String groupNameTwoMembers = "engineering"; - final String groupNameZeroMembers = "management"; - users.createGroup(groupNameTwoMembers); - users.createGroup(groupNameZeroMembers); + public void testCreateGetRemoveUser() throws Exception { users.createUser("user1", "user1"); - users.createUser("user2", "user2"); - users.addMemberToGroup(groupNameTwoMembers, "user1"); - users.addMemberToGroup(groupNameTwoMembers, "user2"); - - assertEquals(users.getGroupMembers(groupNameTwoMembers).size(), 2); - assertEquals(users.getGroupMembers(groupNameZeroMembers).size(), 0); - } + users.createUser("user", "user", UserType.LOCAL, false, false); + users.createUser("user_ldap", "user_ldap", UserType.LDAP, true, true); + User createdUser = users.getUser("user", UserType.LOCAL); + User createdUser1 = users.getAnyUser("user1"); + User createdLdapUser = users.getUser("user_ldap", UserType.LDAP); - @Test - public void testGetAllUsers() throws Exception { - Authentication auth = new UsernamePasswordAuthenticationToken("user", null); - SecurityContextHolder.getContext().setAuthentication(auth); + Assert.assertEquals("user1", createdUser1.getUserName()); + Assert.assertEquals(true, createdUser1.isActive()); + Assert.assertEquals(false, createdUser1.isLdapUser()); + Assert.assertEquals(false, createdUser1.isAdmin()); - users.createUser("user", "user"); + Assert.assertEquals("user", createdUser.getUserName()); + Assert.assertEquals(false, createdUser.isActive()); + Assert.assertEquals(false, createdUser.isLdapUser()); + Assert.assertEquals(false, createdUser.isAdmin()); - List userList = users.getAllUsers(); + Assert.assertEquals("user_ldap", createdLdapUser.getUserName()); + Assert.assertEquals(true, createdLdapUser.isActive()); + Assert.assertEquals(true, createdLdapUser.isLdapUser()); + Assert.assertEquals(true, createdLdapUser.isAdmin()); - assertEquals(2, userList.size()); + assertEquals("user", users.getAnyUser("user").getUserName()); + assertEquals("user_ldap", users.getAnyUser("user_ldap").getUserName()); + Assert.assertNull(users.getAnyUser("non_existing")); - for (User user : userList) { - assertEquals(false, user.isLdapUser()); + // create duplicate user + try { + users.createUser("user1", "user1"); + Assert.fail("It shouldn't be possible to create duplicate user"); + } catch (AmbariException e) { } - assertEquals(2, userDAO.findAll().size()); - - UserEntity userEntity = userDAO.findUserByName("user"); - assertNotNull("user", userEntity.getUserPassword()); - - users.modifyPassword("user", "user", "resu"); - - assertNotSame(userEntity.getUserPassword(), userDAO.findUserByName("user").getUserPassword()); - } - - @Test - public void testGetAnyUser() throws Exception { - users.createUser("user", "user", UserType.LOCAL, true, false); - users.createUser("user_ldap", "user_ldap", UserType.LDAP, true, false); + try { + users.createUser("USER1", "user1"); + Assert.fail("It shouldn't be possible to create duplicate user"); + } catch (AmbariException e) { + } - assertEquals("user", users.getAnyUser("user").getUserName()); - assertEquals("user_ldap", users.getAnyUser("user_ldap").getUserName()); - Assert.assertNull(users.getAnyUser("non_existing")); - } + // test get all users + List userList = users.getAllUsers(); - @Test - public void testGetAnyUserCaseInsensitive() throws Exception { - users.createUser("user", "user", UserType.LOCAL, true, false); - users.createUser("user_ldap", "user_ldap", UserType.LDAP, true, false); + Assert.assertEquals(3, userList.size()); + // check get any user case insensitive assertEquals("user", users.getAnyUser("USER").getUserName()); assertEquals("user_ldap", users.getAnyUser("USER_LDAP").getUserName()); Assert.assertNull(users.getAnyUser("non_existing")); - } - @Test - public void testGetUserById() throws Exception { - users.createUser("user", "user", UserType.LOCAL, true, false); - User createdUser = users.getUser("user", UserType.LOCAL); + // get user by id User userById = users.getUser(createdUser.getUserId()); assertNotNull(userById); assertEquals(createdUser.getUserId(), userById.getUserId()); - } - @Test - public void testGetUserByInvalidId() throws Exception { - User userById = users.getUser(-1); + // get user by invalid id + User userByInvalidId = users.getUser(-1); + + assertNull(userByInvalidId); + + // get user if unique + Assert.assertNotNull(users.getUserIfUnique("user")); + + users.createUser("user", "user", UserType.LDAP, true, false); + + Assert.assertNull(users.getUserIfUnique("user")); + + //remove user + Assert.assertEquals(4, users.getAllUsers().size()); + + users.removeUser(users.getAnyUser("user1")); - assertNull(userById); + Assert.assertNull(users.getAnyUser("user1")); + Assert.assertEquals(3, users.getAllUsers().size()); } @Test @@ -336,16 +299,11 @@ public class TestUsers { } @Test - public void testCreateGroup() throws Exception { - final String groupName = "engineering"; - users.createGroup(groupName); - assertNotNull(groupDAO.findGroupByName(groupName)); - } - - @Test - public void testGetGroup() throws Exception { - final String groupName = "engineering"; + public void testCreateGetRemoveGroup() throws Exception { + final String groupName = "engineering1"; + final String groupName2 = "engineering2"; users.createGroup(groupName); + users.createGroup(groupName2); final Group group = users.getGroup(groupName); assertNotNull(group); @@ -353,71 +311,46 @@ public class TestUsers { assertEquals(groupName, group.getGroupName()); assertNotNull(groupDAO.findGroupByName(groupName)); - } - - @Test - public void testGetAllGroups() throws Exception { - users.createGroup("one"); - users.createGroup("two"); + // get all groups final List groupList = users.getAllGroups(); assertEquals(2, groupList.size()); assertEquals(2, groupDAO.findAll().size()); - } - @Test - public void testRemoveGroup() throws Exception { - final String groupName = "engineering"; - users.createGroup(groupName); - final Group group = users.getGroup(groupName); - assertEquals(1, users.getAllGroups().size()); + // remove group users.removeGroup(group); - assertEquals(0, users.getAllGroups().size()); - } - - @Test - public void testAddMemberToGroup() throws Exception { - final String groupName = "engineering"; - users.createGroup(groupName); - users.createUser("user", "user"); - users.addMemberToGroup(groupName, "user"); - assertEquals(1, groupDAO.findGroupByName(groupName).getMemberEntities().size()); + assertNull(users.getGroup(group.getGroupName())); + assertEquals(1, users.getAllGroups().size()); } @Test - public void testGetAllMembers() throws Exception { + public void testMembers() throws Exception { final String groupName = "engineering"; + final String groupName2 = "engineering2"; users.createGroup(groupName); + users.createGroup(groupName2); users.createUser("user1", "user1"); users.createUser("user2", "user2"); users.createUser("user3", "user3"); users.addMemberToGroup(groupName, "user1"); users.addMemberToGroup(groupName, "user2"); assertEquals(2, users.getAllMembers(groupName).size()); + assertEquals(0, users.getAllMembers(groupName2).size()); try { users.getAllMembers("non existing"); Assert.fail("It shouldn't be possible to call getAllMembers() on non-existing group"); } catch (Exception ex) { } - } - - @Test - public void testRemoveMemberFromGroup() throws Exception { - final String groupName = "engineering"; - users.createGroup(groupName); - users.createUser("user", "user"); - users.addMemberToGroup(groupName, "user"); - assertEquals(1, groupDAO.findGroupByName(groupName).getMemberEntities().size()); - users.removeMemberFromGroup(groupName, "user"); - assertEquals(0, groupDAO.findGroupByName(groupName).getMemberEntities().size()); - } + // get members from not unexisting group + assertEquals(users.getGroupMembers("unexisting"), null); - @Test - public void testGetGroupMembersUnexistingGroup() throws Exception { - assertEquals(users.getGroupMembers("unexisting"), null); + // remove member from group + users.removeMemberFromGroup(groupName, "user1"); + assertEquals(1, groupDAO.findGroupByName(groupName).getMemberEntities().size()); + assertEquals("user2", groupDAO.findGroupByName(groupName).getMemberEntities().iterator().next().getUser().getUserName()); } @Test @@ -477,17 +410,6 @@ public class TestUsers { } @Test - public void testCreateUserTwoParams() throws Exception { - users.createUser("user", "user"); - - final User createdUser = users.getAnyUser("user"); - Assert.assertEquals("user", createdUser.getUserName()); - Assert.assertEquals(true, createdUser.isActive()); - Assert.assertEquals(false, createdUser.isLdapUser()); - Assert.assertEquals(false, createdUser.isAdmin()); - } - - @Test @Ignore // TODO @Transactional annotation breaks this test public void testCreateUserDefaultParams() throws Exception { final Users spy = Mockito.spy(users); @@ -496,47 +418,4 @@ public class TestUsers { } - @Test(expected = AmbariException.class) - public void testCreateUserDuplicate() throws Exception { - users.createUser("user", "user"); - users.createUser("user", "user"); - } - - @Test(expected = AmbariException.class) - public void testCreateUserDuplicateCaseInsensitive() throws Exception { - users.createUser("user", "user"); - users.createUser("USER", "user"); - } - - @Test - public void testRemoveUser() throws Exception { - users.createUser("user1", "user1"); - users.createUser("user2", "user2"); - users.createUser("user3", "user3"); - Assert.assertEquals(4, users.getAllUsers().size()); - - users.removeUser(users.getAnyUser("user1")); - - Assert.assertNull(users.getAnyUser("user1")); - Assert.assertEquals(3, users.getAllUsers().size()); - } - - @Test - public void testCreateUserFiveParams() throws Exception { - users.createUser("user", "user", UserType.LOCAL, false, false); - - final User createdUser = users.getAnyUser("user"); - Assert.assertEquals("user", createdUser.getUserName()); - Assert.assertEquals(false, createdUser.isActive()); - Assert.assertEquals(false, createdUser.isLdapUser()); - Assert.assertEquals(false, createdUser.isAdmin()); - - users.createUser("user2", "user2", UserType.LDAP, true, true); - final User createdUser2 = users.getAnyUser("user2"); - Assert.assertEquals("user2", createdUser2.getUserName()); - Assert.assertEquals(true, createdUser2.isActive()); - Assert.assertEquals(true, createdUser2.isLdapUser()); - Assert.assertEquals(true, createdUser2.isAdmin()); - } - } http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java index bf72e0c..5462f7b 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/ConfigureActionTest.java @@ -43,9 +43,7 @@ import org.apache.ambari.server.orm.dao.HostDAO; import org.apache.ambari.server.orm.dao.HostVersionDAO; import org.apache.ambari.server.orm.dao.RepositoryVersionDAO; import org.apache.ambari.server.orm.dao.StackDAO; -import org.apache.ambari.server.orm.entities.ClusterVersionEntity; import org.apache.ambari.server.orm.entities.HostVersionEntity; -import org.apache.ambari.server.orm.entities.RepositoryVersionEntity; import org.apache.ambari.server.orm.entities.StackEntity; import org.apache.ambari.server.serveraction.ServerAction; import org.apache.ambari.server.state.Cluster; @@ -66,13 +64,12 @@ import org.apache.ambari.server.state.stack.upgrade.PropertyKeyState; import org.apache.ambari.server.state.stack.upgrade.TransferCoercionType; import org.apache.ambari.server.state.stack.upgrade.TransferOperation; import org.junit.After; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import com.google.gson.Gson; import com.google.inject.Guice; +import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.persist.PersistService; @@ -86,84 +83,45 @@ public class ConfigureActionTest { private static final StackId HDP_211_STACK = new StackId("HDP-2.1.1"); private static final StackId HDP_220_STACK = new StackId("HDP-2.2.0"); - private static Injector m_injector; - private static OrmTestHelper m_helper; - private static RepositoryVersionDAO repoVersionDAO; - private static HostVersionDAO hostVersionDAO; - private static HostRoleCommandFactory hostRoleCommandFactory; - private static ServiceFactory serviceFactory; - private static ConfigHelper m_configHelper; - private static Clusters clusters; - private static ClusterVersionDAO clusterVersionDAO; - private static ConfigFactory cf; - private static ConfigureAction action; - private static HostDAO hostDAO; - - @BeforeClass - public static void classSetUp() throws Exception { - m_injector = Guice.createInjector(new InMemoryDefaultTestModule()); - m_injector.getInstance(GuiceJpaInitializer.class); - - m_helper = m_injector.getInstance(OrmTestHelper.class); - repoVersionDAO = m_injector.getInstance(RepositoryVersionDAO.class); - hostVersionDAO = m_injector.getInstance(HostVersionDAO.class); - hostRoleCommandFactory = m_injector.getInstance(HostRoleCommandFactory.class); - serviceFactory = m_injector.getInstance(ServiceFactory.class); - m_configHelper = m_injector.getInstance(ConfigHelper.class); - clusters = m_injector.getInstance(Clusters.class); - clusterVersionDAO = m_injector.getInstance(ClusterVersionDAO.class); - cf = m_injector.getInstance(ConfigFactory.class); - action = m_injector.getInstance(ConfigureAction.class); - hostDAO = m_injector.getInstance(HostDAO.class); - } + @Inject + private Injector m_injector; + @Inject + private OrmTestHelper m_helper; + @Inject + private RepositoryVersionDAO repoVersionDAO; + @Inject + private HostVersionDAO hostVersionDAO; + @Inject + private HostRoleCommandFactory hostRoleCommandFactory; + @Inject + private ServiceFactory serviceFactory; + @Inject + private ConfigHelper m_configHelper; + @Inject + private Clusters clusters; + @Inject + private ClusterVersionDAO clusterVersionDAO; + @Inject + private ConfigFactory cf; + @Inject + private ConfigureAction action; + @Inject + private HostDAO hostDAO; + @Inject + private StackDAO stackDAO; @Before public void setup() throws Exception { - + m_injector = Guice.createInjector(new InMemoryDefaultTestModule()); + m_injector.getInstance(GuiceJpaInitializer.class); + m_injector.injectMembers(this); } @After public void teardown() throws Exception { - cleanup(); - } - - @AfterClass - public static void afterClass() throws Exception { m_injector.getInstance(PersistService.class).stop(); } - private void cleanup() throws AmbariException { - Map clusterMap = clusters.getClusters(); - - List clusterVersionEntities = clusterVersionDAO.findAll(); - if (clusterVersionEntities != null) { - for (ClusterVersionEntity cve : clusterVersionEntities) { - clusterVersionDAO.remove(cve); - } - } - - List repositoryVersionEntities = repoVersionDAO.findAll(); - if (repositoryVersionEntities != null) { - for (RepositoryVersionEntity rve : repositoryVersionEntities) { - repoVersionDAO.remove(rve); - } - } - - List hostVersionEntities = hostVersionDAO.findAll(); - if (clusterVersionEntities != null) { - for (HostVersionEntity hve : hostVersionEntities) { - hostVersionDAO.remove(hve); - } - } - - for (String clusterName : clusterMap.keySet()) { - clusters.deleteCluster(clusterName); - } - - for (Host host : clusters.getHosts()) { - clusters.deleteHost(host.getHostName()); - } - } @Test public void testConfigActionUpgradeAcrossStack() throws Exception { @@ -1703,7 +1661,7 @@ public class ConfigureActionTest { clusters.addCluster(clusterName, HDP_220_STACK); - StackDAO stackDAO = m_injector.getInstance(StackDAO.class); + StackEntity stackEntity = stackDAO.find(HDP_220_STACK.getStackName(), HDP_220_STACK.getStackVersion()); http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java index f1013c2..50ce7b4 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/serveraction/upgrades/UpgradeActionTest.java @@ -57,8 +57,6 @@ import org.apache.ambari.server.orm.dao.ServiceComponentDesiredStateDAO; import org.apache.ambari.server.orm.dao.StackDAO; import org.apache.ambari.server.orm.dao.UpgradeDAO; import org.apache.ambari.server.orm.entities.ClusterVersionEntity; -import org.apache.ambari.server.orm.entities.HostComponentDesiredStateEntity; -import org.apache.ambari.server.orm.entities.HostComponentStateEntity; import org.apache.ambari.server.orm.entities.HostVersionEntity; import org.apache.ambari.server.orm.entities.RepositoryVersionEntity; import org.apache.ambari.server.orm.entities.RequestEntity; @@ -85,10 +83,8 @@ import org.apache.ambari.server.state.stack.UpgradePack; import org.apache.ambari.server.state.stack.upgrade.Direction; import org.apache.ambari.server.state.stack.upgrade.UpgradeType; import org.junit.After; -import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import com.google.gson.Gson; @@ -96,6 +92,7 @@ import com.google.gson.JsonArray; import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.inject.Guice; +import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.persist.PersistService; import com.google.inject.persist.UnitOfWork; @@ -117,122 +114,67 @@ public class UpgradeActionTest { private static final String HDP_211_CENTOS6_REPO_URL = "http://s3.amazonaws.com/dev.hortonworks.com/HDP/centos6/2.x/BUILDS/2.1.1.0-118"; - private static Injector m_injector; - private static AmbariManagementController amc; - private static OrmTestHelper m_helper; - private static RepositoryVersionDAO repoVersionDAO; - private static Clusters clusters; - private static ClusterVersionDAO clusterVersionDAO; - private static HostVersionDAO hostVersionDAO; - private static HostDAO hostDAO; - private static HostRoleCommandFactory hostRoleCommandFactory; - private static ServiceFactory serviceFactory; - private static ServiceComponentFactory serviceComponentFactory; - private static ServiceComponentHostFactory serviceComponentHostFactory; - private static RequestDAO requestDAO; - private static UpgradeDAO upgradeDAO; - private static ServiceComponentDesiredStateDAO serviceComponentDesiredStateDAO; - private static HostComponentDesiredStateDAO hostComponentDesiredStateDAO; - private static HostComponentStateDAO hostComponentStateDAO; - private static StackDAO stackDAO; - private static AmbariMetaInfo ambariMetaInfo; - private static FinalizeUpgradeAction finalizeUpgradeAction; - - @BeforeClass - public static void classSetUp() throws NoSuchFieldException, IllegalAccessException { + private Injector m_injector; + + private AmbariManagementController amc; + @Inject + private OrmTestHelper m_helper; + @Inject + private RepositoryVersionDAO repoVersionDAO; + @Inject + private Clusters clusters; + @Inject + private ClusterVersionDAO clusterVersionDAO; + @Inject + private HostVersionDAO hostVersionDAO; + @Inject + private HostDAO hostDAO; + @Inject + private HostRoleCommandFactory hostRoleCommandFactory; + @Inject + private ServiceFactory serviceFactory; + @Inject + private ServiceComponentFactory serviceComponentFactory; + @Inject + private ServiceComponentHostFactory serviceComponentHostFactory; + @Inject + private RequestDAO requestDAO; + @Inject + private UpgradeDAO upgradeDAO; + @Inject + private ServiceComponentDesiredStateDAO serviceComponentDesiredStateDAO; + @Inject + private HostComponentDesiredStateDAO hostComponentDesiredStateDAO; + @Inject + private HostComponentStateDAO hostComponentStateDAO; + @Inject + private StackDAO stackDAO; + @Inject + private AmbariMetaInfo ambariMetaInfo; + @Inject + private FinalizeUpgradeAction finalizeUpgradeAction; + + @Before + public void setup() throws Exception { m_injector = Guice.createInjector(new InMemoryDefaultTestModule()); m_injector.getInstance(GuiceJpaInitializer.class); + m_injector.injectMembers(this); + m_injector.getInstance(UnitOfWork.class).begin(); - m_helper = m_injector.getInstance(OrmTestHelper.class); - repoVersionDAO = m_injector.getInstance(RepositoryVersionDAO.class); - clusters = m_injector.getInstance(Clusters.class); - clusterVersionDAO = m_injector.getInstance(ClusterVersionDAO.class); - hostVersionDAO = m_injector.getInstance(HostVersionDAO.class); - hostDAO = m_injector.getInstance(HostDAO.class); - hostRoleCommandFactory = m_injector.getInstance(HostRoleCommandFactory.class); - serviceFactory = m_injector.getInstance(ServiceFactory.class); - serviceComponentFactory = m_injector.getInstance(ServiceComponentFactory.class); - serviceComponentHostFactory = m_injector.getInstance(ServiceComponentHostFactory.class); - requestDAO = m_injector.getInstance(RequestDAO.class); - upgradeDAO = m_injector.getInstance(UpgradeDAO.class); - serviceComponentDesiredStateDAO = m_injector.getInstance(ServiceComponentDesiredStateDAO.class); - hostComponentDesiredStateDAO = m_injector.getInstance(HostComponentDesiredStateDAO.class); - hostComponentStateDAO = m_injector.getInstance(HostComponentStateDAO.class); + // Initialize AmbariManagementController amc = m_injector.getInstance(AmbariManagementController.class); - stackDAO = m_injector.getInstance(StackDAO.class); - ambariMetaInfo = m_injector.getInstance(AmbariMetaInfo.class); - finalizeUpgradeAction = m_injector.getInstance(FinalizeUpgradeAction.class); Field field = AmbariServer.class.getDeclaredField("clusterController"); field.setAccessible(true); field.set(null, amc); } - @Before - public void setup() throws Exception { - cleanup(); - m_injector.getInstance(UnitOfWork.class).begin(); - } - @After public void teardown() throws Exception { m_injector.getInstance(UnitOfWork.class).end(); - cleanup(); - } - - @AfterClass - public static void afterClass() throws Exception { m_injector.getInstance(PersistService.class).stop(); } - private void cleanup() throws AmbariException { - Map clusterMap = clusters.getClusters(); - - List clusterVersionEntities = clusterVersionDAO.findAll(); - if (clusterVersionEntities != null) { - for (ClusterVersionEntity cve : clusterVersionEntities) { - clusterVersionDAO.remove(cve); - } - } - - List repositoryVersionEntities = repoVersionDAO.findAll(); - if (repositoryVersionEntities != null) { - for (RepositoryVersionEntity rve : repositoryVersionEntities) { - repoVersionDAO.remove(rve); - } - } - - List hostVersionEntities = hostVersionDAO.findAll(); - if (clusterVersionEntities != null) { - for (HostVersionEntity hve : hostVersionEntities) { - hostVersionDAO.remove(hve); - } - } - - List hostComponentDesiredStateEntities = hostComponentDesiredStateDAO.findAll(); - if (hostComponentDesiredStateEntities != null) { - for (HostComponentDesiredStateEntity hcdse : hostComponentDesiredStateEntities) { - hostComponentDesiredStateDAO.remove(hcdse); - } - } - - List hostComponentStateEntities = hostComponentStateDAO.findAll(); - if (hostComponentStateEntities != null) { - for (HostComponentStateEntity hcse : hostComponentStateEntities) { - hostComponentStateDAO.remove(hcse); - } - } - - for (String clusterName : clusterMap.keySet()) { - clusters.deleteCluster(clusterName); - } - - for (Host host : clusters.getHosts()) { - clusters.deleteHost(host.getHostName()); - } - - } - private void makeDowngradeCluster(StackId sourceStack, String sourceRepo, StackId targetStack, String targetRepo) throws Exception { String hostName = "h1"; http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceTest.java index 897e955..8f00b72 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/ServiceTest.java @@ -20,8 +20,6 @@ package org.apache.ambari.server.state; import junit.framework.Assert; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; import java.util.HashMap; @@ -35,9 +33,7 @@ import org.apache.ambari.server.orm.InMemoryDefaultTestModule; import org.apache.ambari.server.orm.dao.ClusterServiceDAO; import org.apache.ambari.server.orm.entities.ClusterServiceEntity; import org.junit.After; -import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import com.google.inject.Guice; @@ -46,17 +42,17 @@ import com.google.inject.persist.PersistService; public class ServiceTest { - private static Clusters clusters; - private static Cluster cluster; - private static String clusterName; - private static Injector injector; - private static ServiceFactory serviceFactory; - private static ServiceComponentFactory serviceComponentFactory; - private static ServiceComponentHostFactory serviceComponentHostFactory; - private static AmbariMetaInfo metaInfo; - - @BeforeClass - public static void classSetUp() throws Exception { + private Clusters clusters; + private Cluster cluster; + private String clusterName; + private Injector injector; + private ServiceFactory serviceFactory; + private ServiceComponentFactory serviceComponentFactory; + private ServiceComponentHostFactory serviceComponentHostFactory; + private AmbariMetaInfo metaInfo; + + @Before + public void setup() throws Exception { injector = Guice.createInjector(new InMemoryDefaultTestModule()); injector.getInstance(GuiceJpaInitializer.class); clusters = injector.getInstance(Clusters.class); @@ -72,26 +68,11 @@ public class ServiceTest { Assert.assertNotNull(cluster); } - @Before - public void setup() throws Exception { - - } - @After public void teardown() throws AmbariException { - //injector.getInstance(PersistService.class).stop(); - cleanup(); - } - - @AfterClass - public static void afterClass() throws Exception { injector.getInstance(PersistService.class).stop(); } - private void cleanup() throws AmbariException { - cluster.deleteAllServices(); - } - @Test public void testCanBeRemoved() throws Exception{ Service service = cluster.addService("HDFS"); @@ -134,26 +115,6 @@ public class ServiceTest { } @Test - public void testCreateService() throws AmbariException { - String serviceName = "HDFS"; - Service s = serviceFactory.createNew(cluster, serviceName); - cluster.addService(s); - s.persist(); - Service service = cluster.getService(serviceName); - - Assert.assertNotNull(service); - Assert.assertEquals(serviceName, service.getName()); - Assert.assertEquals(cluster.getClusterId(), - service.getCluster().getClusterId()); - Assert.assertEquals(cluster.getClusterName(), - service.getCluster().getClusterName()); - Assert.assertEquals(State.INIT, service.getDesiredState()); - Assert.assertEquals(SecurityState.UNSECURED, service.getSecurityState()); - Assert.assertFalse( - service.getDesiredStackVersion().getStackId().isEmpty()); - } - - @Test public void testGetAndSetServiceInfo() throws AmbariException { String serviceName = "HDFS"; Service s = serviceFactory.createNew(cluster, serviceName); @@ -176,7 +137,7 @@ public class ServiceTest { @Test - public void testAddAndGetServiceComponents() throws AmbariException { + public void testAddGetDeleteServiceComponents() throws AmbariException { String serviceName = "HDFS"; Service s = serviceFactory.createNew(cluster, serviceName); cluster.addService(s); @@ -185,6 +146,15 @@ public class ServiceTest { Service service = cluster.getService(serviceName); Assert.assertNotNull(service); + Assert.assertEquals(serviceName, service.getName()); + Assert.assertEquals(cluster.getClusterId(), + service.getCluster().getClusterId()); + Assert.assertEquals(cluster.getClusterName(), + service.getCluster().getClusterName()); + Assert.assertEquals(State.INIT, service.getDesiredState()); + Assert.assertEquals(SecurityState.UNSECURED, service.getSecurityState()); + Assert.assertFalse( + service.getDesiredStackVersion().getStackId().isEmpty()); Assert.assertTrue(s.getServiceComponents().isEmpty()); @@ -240,6 +210,10 @@ public class ServiceTest { Assert.assertEquals(State.INSTALLING, s.getServiceComponent("HDFS_CLIENT").getDesiredState()); + // delete service component + s.deleteServiceComponent("NAMENODE"); + + assertEquals(3, s.getServiceComponents().size()); } @Test @@ -289,36 +263,6 @@ public class ServiceTest { } @Test - public void testDeleteServiceComponent() throws Exception { - Service hdfs = cluster.addService("HDFS"); - Service mapReduce = cluster.addService("MAPREDUCE"); - - hdfs.persist(); - - ServiceComponent nameNode = hdfs.addServiceComponent("NAMENODE"); - nameNode.persist(); - ServiceComponent jobTracker = mapReduce.addServiceComponent("JOBTRACKER"); - - assertEquals(2, cluster.getServices().size()); - assertEquals(1, hdfs.getServiceComponents().size()); - assertEquals(1, mapReduce.getServiceComponents().size()); - assertTrue(hdfs.isPersisted()); - assertFalse(mapReduce.isPersisted()); - - hdfs.deleteServiceComponent("NAMENODE"); - - assertEquals(0, hdfs.getServiceComponents().size()); - assertEquals(1, mapReduce.getServiceComponents().size()); - - mapReduce.deleteServiceComponent("JOBTRACKER"); - - assertEquals(0, hdfs.getServiceComponents().size()); - assertEquals(0, mapReduce.getServiceComponents().size()); - - } - - - @Test public void testServiceMaintenance() throws Exception { String serviceName = "HDFS"; Service s = serviceFactory.createNew(cluster, serviceName); http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java b/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java index bf58967..243cb4f 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/state/svccomphost/ServiceComponentHostTest.java @@ -65,117 +65,74 @@ import org.apache.ambari.server.state.configgroup.ConfigGroup; import org.apache.ambari.server.state.configgroup.ConfigGroupFactory; import org.apache.ambari.server.state.fsm.InvalidStateTransitionException; import org.junit.After; -import org.junit.AfterClass; import org.junit.Assert; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Ignore; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import com.google.inject.Guice; +import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.persist.PersistService; public class ServiceComponentHostTest { private static Logger LOG = LoggerFactory.getLogger(ServiceComponentHostTest.class); - - private static Injector injector; - private static Clusters clusters; - private static ServiceFactory serviceFactory; - private static ServiceComponentFactory serviceComponentFactory; - private static ServiceComponentHostFactory serviceComponentHostFactory; - private static ConfigFactory configFactory; - private static ConfigGroupFactory configGroupFactory; - private static OrmTestHelper helper; - private static ClusterDAO clusterDAO; - private static HostDAO hostDAO; - private static HostComponentDesiredStateDAO hostComponentDesiredStateDAO; - private static HostComponentStateDAO hostComponentStateDAO; + @Inject + private Injector injector; + @Inject + private Clusters clusters; + @Inject + private ServiceFactory serviceFactory; + @Inject + private ServiceComponentFactory serviceComponentFactory; + @Inject + private ServiceComponentHostFactory serviceComponentHostFactory; + @Inject + private ConfigFactory configFactory; + @Inject + private ConfigGroupFactory configGroupFactory; + @Inject + private OrmTestHelper helper; + @Inject + private ClusterDAO clusterDAO; + @Inject + private HostDAO hostDAO; + @Inject + private HostComponentDesiredStateDAO hostComponentDesiredStateDAO; + @Inject + private HostComponentStateDAO hostComponentStateDAO; private String clusterName = "c1"; private String hostName1 = "h1"; private Map hostAttributes = new HashMap(); - @BeforeClass - public static void classSetUp() { - injector = Guice.createInjector(new InMemoryDefaultTestModule()); - injector.getInstance(GuiceJpaInitializer.class); - clusters = injector.getInstance(Clusters.class); - serviceFactory = injector.getInstance(ServiceFactory.class); - serviceComponentFactory = injector.getInstance(ServiceComponentFactory.class); - serviceComponentHostFactory = injector.getInstance(ServiceComponentHostFactory.class); - configFactory = injector.getInstance(ConfigFactory.class); - configGroupFactory = injector.getInstance(ConfigGroupFactory.class); - helper = injector.getInstance(OrmTestHelper.class); - clusterDAO = injector.getInstance(ClusterDAO.class); - hostDAO = injector.getInstance(HostDAO.class); - hostComponentDesiredStateDAO = injector.getInstance(HostComponentDesiredStateDAO.class); - hostComponentStateDAO = injector.getInstance(HostComponentStateDAO.class); - } @Before public void setup() throws Exception { - cleanup(); - - if (clusters.getClusters().size() == 0) { - StackId stackId = new StackId("HDP-0.1"); - createCluster(stackId, clusterName); - hostAttributes.put("os_family", "redhat"); - hostAttributes.put("os_release_version", "5.9"); - - Set hostNames = new HashSet(); - hostNames.add(hostName1); - addHostsToCluster(clusterName, hostAttributes, hostNames); - - Cluster c1 = clusters.getCluster(clusterName); - helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion()); - c1.createClusterVersion(stackId, stackId.getStackVersion(), "admin", - RepositoryVersionState.INSTALLING); - } - } - - @After - public void teardown() throws AmbariException { - cleanup(); - } - - @AfterClass - public static void afterClass() throws Exception { - injector.getInstance(PersistService.class).stop(); - } - - private void cleanup() throws AmbariException { - try { - Map clusterMap = clusters.getClusters(); - - List hostComponentDesiredStateEntities = hostComponentDesiredStateDAO.findAll(); - if (hostComponentDesiredStateEntities != null) { - for (HostComponentDesiredStateEntity hcdse : hostComponentDesiredStateEntities) { - hostComponentDesiredStateDAO.remove(hcdse); - } - } + injector = Guice.createInjector(new InMemoryDefaultTestModule()); + injector.getInstance(GuiceJpaInitializer.class); + injector.injectMembers(this); - List hostComponentStateEntities = hostComponentStateDAO.findAll(); - if (hostComponentStateEntities != null) { - for (HostComponentStateEntity hcse : hostComponentStateEntities) { - hostComponentStateDAO.remove(hcse); - } - } + StackId stackId = new StackId("HDP-0.1"); + createCluster(stackId, clusterName); + hostAttributes.put("os_family", "redhat"); + hostAttributes.put("os_release_version", "5.9"); - for (String clusterName : clusterMap.keySet()) { - clusters.deleteCluster(clusterName); - } + Set hostNames = new HashSet(); + hostNames.add(hostName1); + addHostsToCluster(clusterName, hostAttributes, hostNames); - for (Host host : clusters.getHosts()) { - clusters.deleteHost(host.getHostName()); - } + Cluster c1 = clusters.getCluster(clusterName); + helper.getOrCreateRepositoryVersion(stackId, stackId.getStackVersion()); + c1.createClusterVersion(stackId, stackId.getStackVersion(), "admin", + RepositoryVersionState.INSTALLING); + } - for (String clusterName : clusterMap.keySet()) { - clusters.deleteCluster(clusterName); - } - } catch (IllegalStateException ise) {} + @After + public void teardown() { + injector.getInstance(PersistService.class).stop(); } private ClusterEntity createCluster(StackId stackId, String clusterName) throws AmbariException { @@ -263,12 +220,6 @@ public class ServiceComponentHostTest { return impl; } - @Test - public void testNewServiceComponentHost() throws AmbariException{ - createNewServiceComponentHost(clusterName, "HDFS", "NAMENODE", hostName1, false); - createNewServiceComponentHost(clusterName, "HDFS", "HDFS_CLIENT", hostName1, true); - } - private ServiceComponentHostEvent createEvent(ServiceComponentHostImpl impl, long timestamp, ServiceComponentHostEventType eventType) throws AmbariException { @@ -521,6 +472,18 @@ public class ServiceComponentHostTest { State.WIPING_OUT, State.INIT); + // check can be removed + for (State state : State.values()) { + impl.setState(state); + + if (state.isRemovableState()) { + Assert.assertTrue(impl.canBeRemoved()); + } + else { + Assert.assertFalse(impl.canBeRemoved()); + } + } + } @Test @@ -753,22 +716,6 @@ public class ServiceComponentHostTest { } } - @Test - public void testCanBeRemoved() throws Exception{ - ServiceComponentHostImpl impl = (ServiceComponentHostImpl) - createNewServiceComponentHost(clusterName, "HDFS", "HDFS_CLIENT", hostName1, true); - - for (State state : State.values()) { - impl.setState(state); - - if (state.isRemovableState()) { - Assert.assertTrue(impl.canBeRemoved()); - } - else { - Assert.assertFalse(impl.canBeRemoved()); - } - } - } @Test public void testStaleConfigs() throws Exception { @@ -1124,8 +1071,8 @@ public class ServiceComponentHostTest { Assert.assertNotNull(hostEntity); ServiceComponentHost sch1 = createNewServiceComponentHost(cluster, "HDFS", "NAMENODE", hostName); - ServiceComponentHost sch2 = createNewServiceComponentHost(cluster, "HDFS", "DATANODE", hostName); - ServiceComponentHost sch3 = createNewServiceComponentHost(cluster, "MAPREDUCE2", "HISTORYSERVER", hostName); + //ServiceComponentHost sch2 = createNewServiceComponentHost(cluster, "HDFS", "DATANODE", hostName); + //ServiceComponentHost sch3 = createNewServiceComponentHost(cluster, "MAPREDUCE2", "HISTORYSERVER", hostName); HostComponentDesiredStateEntityPK pk = new HostComponentDesiredStateEntityPK(); pk.setClusterId(Long.valueOf(cluster.getClusterId())); http://git-wip-us.apache.org/repos/asf/ambari/blob/392a752d/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java index e151d73..3bff060 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/upgrade/UpgradeCatalog210Test.java @@ -33,7 +33,6 @@ import static org.easymock.EasyMock.eq; import static org.easymock.EasyMock.expect; import static org.easymock.EasyMock.expectLastCall; import static org.easymock.EasyMock.replay; -import static org.easymock.EasyMock.reset; import static org.easymock.EasyMock.verify; import java.io.File; @@ -88,11 +87,7 @@ import org.apache.ambari.server.state.stack.OsFamily; import org.easymock.Capture; import org.easymock.CaptureType; import org.easymock.EasyMockSupport; -import org.junit.After; -import org.junit.AfterClass; import org.junit.Assert; -import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import com.google.inject.AbstractModule; @@ -107,14 +102,16 @@ import com.google.inject.persist.PersistService; * {@link org.apache.ambari.server.upgrade.UpgradeCatalog210} unit tests. */ public class UpgradeCatalog210Test { - private static Injector injector; + private Injector injector; private Provider entityManagerProvider = createStrictMock(Provider.class); private EntityManager entityManager = createNiceMock(EntityManager.class); - private static UpgradeCatalogHelper upgradeCatalogHelper; - private static StackEntity desiredStackEntity; + private UpgradeCatalogHelper upgradeCatalogHelper; + private StackEntity desiredStackEntity; - @BeforeClass - public static void classSetUp() { + public void initData() { + //reset(entityManagerProvider); + //expect(entityManagerProvider.get()).andReturn(entityManager).anyTimes(); + //replay(entityManagerProvider); injector = Guice.createInjector(new InMemoryDefaultTestModule()); injector.getInstance(GuiceJpaInitializer.class); @@ -126,22 +123,7 @@ public class UpgradeCatalog210Test { desiredStackEntity = stackDAO.find("HDP", "2.2.0"); } - @Before - public void init() { - reset(entityManagerProvider); - expect(entityManagerProvider.get()).andReturn(entityManager).anyTimes(); - replay(entityManagerProvider); - - - } - - @After public void tearDown() { - - } - - @AfterClass - public static void afterClass() throws Exception { injector.getInstance(PersistService.class).stop(); } @@ -821,6 +803,7 @@ public class UpgradeCatalog210Test { @Test public void testDeleteStormRestApiServiceComponent() throws Exception { + initData(); ClusterEntity clusterEntity = upgradeCatalogHelper.createCluster(injector, "c1", desiredStackEntity); ClusterServiceEntity clusterServiceEntity = upgradeCatalogHelper.createService( @@ -879,6 +862,7 @@ public class UpgradeCatalog210Test { Assert.assertNull(componentDesiredStateDAO.findByName(clusterEntity.getClusterId(), "STORM", "STORM_REST_API")); + tearDown(); }