Package org.apache.ambari.server.orm.dao

Source Code of org.apache.ambari.server.orm.dao.ConfigGroupDAOTest

/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements.  See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership.  The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License.  You may obtain a copy of the License at
*
*     http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.ambari.server.orm.dao;

import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.persist.PersistService;
import junit.framework.Assert;
import org.apache.ambari.server.AmbariException;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
import org.apache.ambari.server.orm.cache.ConfigGroupHostMapping;
import org.apache.ambari.server.orm.entities.ClusterConfigEntity;
import org.apache.ambari.server.orm.entities.ClusterEntity;
import org.apache.ambari.server.orm.entities.ConfigGroupConfigMappingEntity;
import org.apache.ambari.server.orm.entities.ConfigGroupEntity;
import org.apache.ambari.server.orm.entities.ConfigGroupHostMappingEntity;
import org.apache.ambari.server.orm.entities.HostEntity;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

public class ConfigGroupDAOTest {
  private Injector injector;
  private ConfigGroupDAO configGroupDAO;
  private ClusterDAO clusterDAO;
  private ConfigGroupConfigMappingDAO configGroupConfigMappingDAO;
  private ConfigGroupHostMappingDAO configGroupHostMappingDAO;
  private HostDAO hostDAO;

  @Before
  public void setup() throws Exception {
    injector = Guice.createInjector(new InMemoryDefaultTestModule());
    injector.getInstance(GuiceJpaInitializer.class);

    clusterDAO = injector.getInstance(ClusterDAO.class);
    configGroupDAO = injector.getInstance(ConfigGroupDAO.class);
    configGroupConfigMappingDAO = injector.getInstance
      (ConfigGroupConfigMappingDAO.class);
    configGroupHostMappingDAO = injector.getInstance
      (ConfigGroupHostMappingDAO.class);
    hostDAO = injector.getInstance(HostDAO.class);
  }

  @After
  public void teardown() throws AmbariException {
    injector.getInstance(PersistService.class).stop();
  }

  private ConfigGroupEntity createConfigGroup(String clusterName,
         String groupName, String tag, String desc, List<HostEntity> hosts,
         List<ClusterConfigEntity> configs) throws Exception {
    ConfigGroupEntity configGroupEntity = new ConfigGroupEntity();

    ClusterEntity clusterEntity = new ClusterEntity();
    clusterEntity.setClusterName(clusterName);
    clusterDAO.create(clusterEntity);

    configGroupEntity.setClusterEntity(clusterEntity);
    configGroupEntity.setClusterId(clusterEntity.getClusterId());
    configGroupEntity.setGroupName(groupName);
    configGroupEntity.setDescription(desc);
    configGroupEntity.setTag(tag);

    configGroupDAO.create(configGroupEntity);

    if (hosts != null && !hosts.isEmpty()) {
      List<ConfigGroupHostMappingEntity> hostMappingEntities = new
        ArrayList<ConfigGroupHostMappingEntity>();

      for (HostEntity host : hosts) {
        hostDAO.create(host);

        ConfigGroupHostMappingEntity hostMappingEntity = new
          ConfigGroupHostMappingEntity();
        hostMappingEntity.setHostname(host.getHostName());
        hostMappingEntity.setHostEntity(host);
        hostMappingEntity.setConfigGroupEntity(configGroupEntity);
        hostMappingEntity.setConfigGroupId(configGroupEntity.getGroupId());
        hostMappingEntities.add(hostMappingEntity);
        configGroupHostMappingDAO.create(hostMappingEntity);
      }
      configGroupEntity.setConfigGroupHostMappingEntities(hostMappingEntities);
      configGroupDAO.merge(configGroupEntity);
    }

    if (configs != null && !configs.isEmpty()) {
      List<ConfigGroupConfigMappingEntity> configMappingEntities = new
        ArrayList<ConfigGroupConfigMappingEntity>();

      for (ClusterConfigEntity config : configs) {
        config.setClusterEntity(clusterEntity);
        config.setClusterId(clusterEntity.getClusterId());
        clusterDAO.createConfig(config);

        ConfigGroupConfigMappingEntity configMappingEntity = new
          ConfigGroupConfigMappingEntity();
        configMappingEntity.setClusterId(clusterEntity.getClusterId());
        configMappingEntity.setClusterConfigEntity(config);
        configMappingEntity.setConfigGroupEntity(configGroupEntity);
        configMappingEntity.setConfigGroupId(configGroupEntity.getGroupId());
        configMappingEntity.setVersionTag(config.getTag());
        configMappingEntity.setConfigType(config.getType());
        configMappingEntity.setTimestamp(System.currentTimeMillis());
        configMappingEntities.add(configMappingEntity);
        configGroupConfigMappingDAO.create(configMappingEntity);
      }
      configGroupEntity.setConfigGroupConfigMappingEntities(configMappingEntities);
      configGroupDAO.merge(configGroupEntity);
    }
    return configGroupEntity;
  }

  @Test
  public void testCreatePlaneJaneCG() throws Exception {
    ConfigGroupEntity configGroupEntity = createConfigGroup("c1", "hdfs-1",
      "HDFS", "some description", null, null);

    Assert.assertNotNull(configGroupEntity);
    Assert.assertEquals("c1", configGroupEntity.getClusterEntity().getClusterName());
    Assert.assertEquals(Long.valueOf(1), configGroupEntity.getClusterEntity()
      .getClusterId());
    Assert.assertEquals("hdfs-1", configGroupEntity.getGroupName());
    Assert.assertEquals("HDFS", configGroupEntity.getTag());
    Assert.assertEquals("some description", configGroupEntity.getDescription());
  }

  @Test
  public void testFindByTag() throws Exception {
    createConfigGroup("c1", "hdfs-1", "HDFS", "some description", null, null);

    List<ConfigGroupEntity> configGroupEntities = configGroupDAO.findAllByTag
      ("HDFS");

    Assert.assertNotNull(configGroupEntities);
    ConfigGroupEntity configGroupEntity = configGroupEntities.get(0);
    Assert.assertNotNull(configGroupEntity);
    Assert.assertEquals("c1", configGroupEntity.getClusterEntity().getClusterName());
    Assert.assertEquals(Long.valueOf(1), configGroupEntity.getClusterEntity()
      .getClusterId());
    Assert.assertEquals("hdfs-1", configGroupEntity.getGroupName());
    Assert.assertEquals("HDFS", configGroupEntity.getTag());
    Assert.assertEquals("some description", configGroupEntity.getDescription());
  }

  @Test
  public void testFindByName() throws Exception {
    createConfigGroup("c1", "hdfs-1", "HDFS", "some description", null, null);

    ConfigGroupEntity configGroupEntity = configGroupDAO.findByName("hdfs-1");

    Assert.assertNotNull(configGroupEntity);
    Assert.assertEquals("c1", configGroupEntity.getClusterEntity().getClusterName());
    Assert.assertEquals(Long.valueOf(1), configGroupEntity.getClusterEntity()
      .getClusterId());
    Assert.assertEquals("hdfs-1", configGroupEntity.getGroupName());
    Assert.assertEquals("HDFS", configGroupEntity.getTag());
    Assert.assertEquals("some description", configGroupEntity.getDescription());
  }

  @Test
  public void testFindByHost() throws Exception {
    List<HostEntity> hosts = new ArrayList<HostEntity>();
    HostEntity hostEntity = new HostEntity();
    hostEntity.setHostName("h1");
    hostEntity.setOsType("centOS");
    hosts.add(hostEntity);
    ConfigGroupEntity configGroupEntity =
      createConfigGroup("c1", "hdfs-1", "HDFS", "some description", hosts, null);

    Assert.assertNotNull(configGroupEntity);
    Assert.assertTrue(configGroupEntity.getConfigGroupHostMappingEntities()
      .size() > 0);
    Assert.assertNotNull(configGroupEntity
      .getConfigGroupHostMappingEntities().iterator().next());

    Set<ConfigGroupHostMapping> hostMappingEntities = configGroupHostMappingDAO
      .findByHost("h1");

    Assert.assertNotNull(hostMappingEntities);
   
    for (ConfigGroupHostMapping hostMappingEntity : hostMappingEntities) {
   
      Assert.assertEquals("h1", hostMappingEntity.getHostname());
      Assert.assertEquals("centOS", hostMappingEntity.getHost().getOsType());
    }
  }

  @Test
  public void testFindConfigsByGroup() throws Exception {
    ClusterConfigEntity configEntity = new ClusterConfigEntity();
    configEntity.setType("core-site");
    configEntity.setTag("version1");
    configEntity.setData("someData");

    List<ClusterConfigEntity> configEntities = new
      ArrayList<ClusterConfigEntity>();
    configEntities.add(configEntity);

    ConfigGroupEntity configGroupEntity =
      createConfigGroup("c1", "hdfs-1", "HDFS", "some description", null,
        configEntities);

    Assert.assertNotNull(configGroupEntity);
    Assert.assertTrue(configGroupEntity.getConfigGroupConfigMappingEntities()
      .size() > 0);

    List<ConfigGroupConfigMappingEntity> configMappingEntities =
      configGroupConfigMappingDAO.findByGroup(configGroupEntity.getGroupId());

    Assert.assertNotNull(configEntities);
    Assert.assertEquals("core-site", configEntities.get(0).getType());
    Assert.assertEquals("version1", configEntities.get(0).getTag());
    Assert.assertEquals("someData", configEntities.get(0).getData());
  }
}
TOP

Related Classes of org.apache.ambari.server.orm.dao.ConfigGroupDAOTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.