/** * 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 java.util.List; import javax.xml.bind.JAXBException; import org.junit.Assert; import org.junit.Test; /** * InstanceConfig tests. */ public class InstanceConfigTest { private static String xml_no_properties = "<view>\n" + " <name>MY_VIEW</name>\n" + " <label>My View!</label>\n" + " <version>1.0.0</version>\n" + " <resource>\n" + " <name>resource</name>\n" + " <plural-name>resources</plural-name>\n" + " <id-property>id</id-property>\n" + " <resource-class>org.apache.ambari.server.view.configuration.ViewConfigTest$MyResource</resource-class>\n" + " <provider-class>org.apache.ambari.server.view.configuration.ViewConfigTest$MyResourceProvider</provider-class>\n" + " <service-class>org.apache.ambari.server.view.configuration.ViewConfigTest$MyResourceService</service-class>\n" + " <sub-resource-name>subresource</sub-resource-name>\n" + " </resource>\n" + " <instance>\n" + " <name>INSTANCE1</name>\n" + " </instance>\n" + "</view>"; private static String xml_visible = "<view>\n" + " <name>MY_VIEW</name>\n" + " <label>My View!</label>\n" + " <version>1.0.0</version>\n" + " <instance>\n" + " <name>INSTANCE1</name>\n" + " <visible>true</visible>\n" + " </instance>\n" + " <instance>\n" + " <name>INSTANCE2</name>\n" + " <visible>false</visible>\n" + " </instance>\n" + " <instance>\n" + " <name>INSTANCE3</name>\n" + " </instance>\n" + "</view>"; @Test public void testGetName() throws Exception { List<InstanceConfig> instances = getInstanceConfigs(); Assert.assertEquals(2, instances.size()); Assert.assertEquals("INSTANCE1", instances.get(0).getName()); Assert.assertEquals("INSTANCE2", instances.get(1).getName()); } @Test public void testGetLabel() throws Exception { List<InstanceConfig> instances = getInstanceConfigs(); Assert.assertEquals(2, instances.size()); Assert.assertEquals("My Instance 1!", instances.get(0).getLabel()); Assert.assertEquals("My Instance 2!", instances.get(1).getLabel()); } @Test public void testGetDescription() throws Exception { List<InstanceConfig> instances = getInstanceConfigs(); Assert.assertEquals(2, instances.size()); Assert.assertEquals("This is a description.", instances.get(0).getDescription()); Assert.assertNull(instances.get(1).getDescription()); } @Test public void testIsVisible() throws Exception { List<InstanceConfig> instances = getInstanceConfigs(xml_visible); Assert.assertEquals(3, instances.size()); Assert.assertTrue(instances.get(0).isVisible()); Assert.assertFalse(instances.get(1).isVisible()); Assert.assertTrue(instances.get(2).isVisible()); } @Test public void testGetIcon() throws Exception { List<InstanceConfig> instances = getInstanceConfigs(); Assert.assertEquals(2, instances.size()); Assert.assertEquals("/this/is/the/icon/url/instance_1_icon.png", instances.get(0).getIcon()); Assert.assertNull(instances.get(1).getIcon()); } @Test public void testGetIcon64() throws Exception { List<InstanceConfig> instances = getInstanceConfigs(); Assert.assertEquals(2, instances.size()); Assert.assertEquals("/this/is/the/icon/url/instance_1_icon64.png", instances.get(0).getIcon64()); Assert.assertNull(instances.get(1).getIcon()); } @Test public void testGetProperties() throws Exception { List<InstanceConfig> instances = getInstanceConfigs(); Assert.assertEquals(2, instances.size()); List<PropertyConfig> properties = instances.get(0).getProperties(); Assert.assertEquals(2, properties.size()); properties = instances.get(1).getProperties(); Assert.assertEquals(1, properties.size()); // check the case where no properties are specified for the instance... instances = getInstanceConfigs(xml_no_properties); Assert.assertEquals(1, instances.size()); properties = instances.get(0).getProperties(); Assert.assertNotNull(properties); Assert.assertEquals(0, properties.size()); } public static List<InstanceConfig> getInstanceConfigs() throws JAXBException { ViewConfig config = ViewConfigTest.getConfig(); return config.getInstances(); } public static List<InstanceConfig> getInstanceConfigs(String xml) throws JAXBException { ViewConfig config = ViewConfigTest.getConfig(xml); return config.getInstances(); } }