/* * RHQ Management Platform * Copyright (C) 2005-2008 Red Hat, Inc. * All rights reserved. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License, version 2, as * published by the Free Software Foundation, and/or the GNU Lesser * General Public License, version 2.1, also as published by the Free * Software Foundation. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License and the GNU Lesser General Public License * for more details. * * You should have received a copy of the GNU General Public License * and the GNU Lesser General Public License along with this program; * if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. */ package org.rhq.core.domain.configuration.test; import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Map; import org.testng.annotations.Test; import org.rhq.core.domain.configuration.Configuration; import org.rhq.core.domain.configuration.Property; import org.rhq.core.domain.configuration.PropertyList; import org.rhq.core.domain.configuration.PropertyMap; import org.rhq.core.domain.configuration.PropertySimple; /** * @author Charles Crouch * @author Ian Springer */ public class ConfigurationPropertyTest { // really just exercising the API rather than testing the implementation @Test public void testConfigurationPropertyGetters() { Configuration config = new Configuration(); PropertyMap map = new PropertyMap("map1"); PropertySimple mapValue = new PropertySimple("mapval1", 1); map.put(mapValue); config.put(map); PropertyList list = new PropertyList("list1"); PropertySimple listValue = new PropertySimple("listval1", 1); list.add(listValue); config.put(list); PropertySimple simple = new PropertySimple("simple1", 1); config.put(simple); Collection<Property> allProperties = config.getProperties(); assert allProperties.size() == 3; Map<String, PropertyMap> mapProperties = config.getMapProperties(); assert mapProperties.size() == 1; Map<String, PropertyList> listProperties = config.getListProperties(); assert listProperties.size() == 1; Map<String, PropertySimple> simpleProperties = config.getSimpleProperties(); assert simpleProperties.size() == 1; } // really just exercising the API rather than testing the implementation @Test public void testPropertySimpleSetters() { PropertySimple simpleInteger = new PropertySimple("a", 1); simpleInteger.setIntegerValue(2); assert simpleInteger.getIntegerValue().equals(2); PropertySimple simpleLong = new PropertySimple("a", (long) 1); simpleLong.setLongValue((long) 2); assert simpleLong.getLongValue().equals((long) 2); PropertySimple simpleDouble = new PropertySimple("a", (double) 1); simpleDouble.setDoubleValue((double) 2); assert simpleDouble.getDoubleValue().equals((double) 2); PropertySimple simpleFloat = new PropertySimple("a", (float) 1); simpleFloat.setFloatValue((float) 2); assert simpleFloat.getFloatValue().equals((float) 2); PropertySimple simpleBoolean = new PropertySimple("a", false); simpleBoolean.setBooleanValue(true); assert simpleBoolean.getBooleanValue().equals(true); PropertySimple simpleString = new PropertySimple("a", "a"); simpleString.setStringValue("b"); assert simpleString.getStringValue().equals("b"); } @Test public void testEquals() { PropertySimple simpleProp1 = new PropertySimple("a", "a"); PropertySimple simpleProp2 = new PropertySimple("a", "a"); assert simpleProp1.equals(simpleProp2); PropertySimple simpleProp3 = new PropertySimple("a", "b"); assert !simpleProp1.equals(simpleProp3); PropertySimple simpleProp4 = new PropertySimple("b", "a"); assert !simpleProp1.equals(simpleProp4); PropertySimple simpleProp5 = new PropertySimple("b", "b"); assert !simpleProp1.equals(simpleProp5); } @Test public void testPropertyListMemberPropertyNameValidation() { try { new PropertyList("foo", new PropertySimple("a", "a"), new PropertySimple("b", "b")); assert false : "creation of PropertyList with mixed-name members succeeded."; } catch (IllegalStateException e) { // expected behavior } PropertyList list = new PropertyList("foo"); List<Property> members = new ArrayList<Property>(); members.add(new PropertySimple("a", "a")); members.add(new PropertySimple("b", "b")); try { list.setList(members); assert false : "setting of PropertyList with mixed-name members succeeded."; } catch (Exception e) { // expected behavior } list = new PropertyList("foo", new PropertySimple("a", "a")); try { list.add(new PropertySimple("b", "b")); assert false : "addition of mixed-name member to PropertyList succeeded."; } catch (IllegalStateException e) { // expected behavior } } }