/* * 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.view.configuration; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; import java.util.Collection; import java.util.List; import javax.xml.bind.JAXBException; import org.junit.Test; import junit.framework.Assert; /** * AutoInstanceConfig tests. */ public class AutoInstanceConfigTest { private static String VIEW_XML = "<view>\n" + " <name>MY_VIEW</name>\n" + " <label>My View!</label>\n" + " <description>Description</description>" + " <version>1.0.0</version>\n" + " <system>true</system>\n" + " <icon64>/this/is/the/icon/url/icon64.png</icon64>\n" + " <icon>/this/is/the/icon/url/icon.png</icon>\n" + " <validator-class>org.apache.ambari.server.view.configuration.ViewConfigTest$MyValidator</validator-class>" + " <masker-class>org.apache.ambari.server.view.DefaultMasker</masker-class>" + " <parameter>\n" + " <name>p1</name>\n" + " <description>Parameter 1.</description>\n" + " <label>Label 1.</label>\n" + " <placeholder>Placeholder 1.</placeholder>\n" + " <required>true</required>\n" + " </parameter>\n" + " <parameter>\n" + " <name>p2</name>\n" + " <description>Parameter 2.</description>\n" + " <default-value>Default value 1.</default-value>\n" + " <cluster-config>hdfs-site/dfs.namenode.http-address</cluster-config>\n" + " <required>false</required>\n" + " <masked>true</masked>" + " </parameter>\n" + " <auto-instance>\n" + " <name>INSTANCE1</name>\n" + " <label>My Instance 1!</label>\n" + " <description>This is a description.</description>\n" + " <icon64>/this/is/the/icon/url/instance_1_icon64.png</icon64>\n" + " <icon>/this/is/the/icon/url/instance_1_icon.png</icon>\n" + " <property>\n" + " <key>p1</key>\n" + " <value>v1-1</value>\n" + " </property>\n" + " <property>\n" + " <key>p2</key>\n" + " <value>v2-1</value>\n" + " </property>\n" + " <stack-id>HDP-2.0</stack-id>\n" + " <services><service>HIVE</service><service>HDFS</service></services>\n" + " <roles><role>CLUSTER.OPERATOR </role><role> CLUSTER.USER</role></roles>\n" + " </auto-instance>\n" + "</view>"; @Test public void testGetName() throws Exception { AutoInstanceConfig config = getAutoInstanceConfigs(VIEW_XML); Assert.assertEquals("INSTANCE1", config.getName()); } @Test public void testDescription() throws Exception { AutoInstanceConfig config = getAutoInstanceConfigs(VIEW_XML); assertEquals("This is a description.", config.getDescription()); } @Test public void testGetStackId() throws Exception { AutoInstanceConfig config = getAutoInstanceConfigs(VIEW_XML); assertEquals("HDP-2.0", config.getStackId()); } @Test public void testGetServices() throws Exception { AutoInstanceConfig config = getAutoInstanceConfigs(VIEW_XML); List<String> serviceNames = config.getServices(); assertEquals(2, serviceNames.size()); assertTrue(serviceNames.contains("HIVE")); assertTrue(serviceNames.contains("HDFS")); } @Test public void shouldParseClusterInheritedPermissions() throws Exception { AutoInstanceConfig config = getAutoInstanceConfigs(VIEW_XML); Collection<String> roles = config.getRoles(); assertEquals(2, roles.size()); assertTrue(roles.contains("CLUSTER.OPERATOR")); assertTrue(roles.contains("CLUSTER.USER")); } private static AutoInstanceConfig getAutoInstanceConfigs(String xml) throws JAXBException { ViewConfig config = ViewConfigTest.getConfig(xml); return config.getAutoInstance(); } }