/**
* 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();
}
}