/*
* 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.harmony.beans.tests.java.beans;
import java.beans.FeatureDescriptor;
import java.util.Enumeration;
import java.util.Hashtable;
import junit.framework.TestCase;
/**
* Unit test for FeatureDescriptor.
*/
public class FeatureDescriptorTest extends TestCase {
private FeatureDescriptor fd;
@Override
protected void setUp() throws Exception {
super.setUp();
fd = new FeatureDescriptor();
}
public void testFeatureDescriptor() {
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNull(fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isHidden());
assertFalse(fd.isPreferred());
}
public void testSetDisplayName() {
String displayName = "FeatureDescriptor.displayName";
fd.setDisplayName(displayName);
assertSame(displayName, fd.getDisplayName());
assertNull(fd.getName());
assertSame(displayName, fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isHidden());
assertFalse(fd.isPreferred());
}
public void testSetDisplayName_DisplayNameNull() {
String displayName = null;
fd.setDisplayName(displayName);
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNull(fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isHidden());
assertFalse(fd.isPreferred());
}
public void testSetExpert_False() {
fd.setExpert(false);
assertFalse(fd.isExpert());
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNull(fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isHidden());
assertFalse(fd.isPreferred());
}
public void testSetExpert_True() {
fd.setExpert(true);
assertTrue(fd.isExpert());
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNull(fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isHidden());
assertFalse(fd.isPreferred());
}
public void testSetHidden_False() {
fd.setHidden(false);
assertFalse(fd.isHidden());
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNull(fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isPreferred());
}
public void testSetHidden_True() {
fd.setHidden(true);
assertTrue(fd.isHidden());
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNull(fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isPreferred());
}
public void testSetName() {
String name = "FeatureDescriptor.name";
fd.setName(name);
assertSame(name, fd.getName());
assertSame(name, fd.getDisplayName());
assertSame(name, fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isHidden());
assertFalse(fd.isPreferred());
}
public void testSetName_null() {
fd.setName("FeatureDescriptor.name");
fd.setName(null);
assertNull(fd.getName());
assertNull(fd.getDisplayName());
assertNull(fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isHidden());
assertFalse(fd.isPreferred());
}
public void testSetPreferred_False() {
fd.setPreferred(false);
assertFalse(fd.isPreferred());
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNull(fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isHidden());
}
public void testSetPreferred_True() {
fd.setPreferred(true);
assertTrue(fd.isPreferred());
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNull(fd.getShortDescription());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isHidden());
}
public void testSetShortDescription() {
String shortDesc = "FeatureDescriptor.ShortDescription";
fd.setShortDescription(shortDesc);
assertSame(shortDesc, fd.getShortDescription());
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isHidden());
assertFalse(fd.isPreferred());
}
public void testSetShortDescription_ShortDescNull() {
String shortDesc = "FeatureDescriptor.ShortDescription";
fd.setShortDescription(shortDesc);
assertSame(shortDesc, fd.getShortDescription());
fd.setShortDescription(null);
assertNull(fd.getShortDescription());
assertNull(fd.getDisplayName());
assertNull(fd.getName());
assertNotNull(fd.attributeNames());
assertFalse(fd.isExpert());
assertFalse(fd.isHidden());
assertFalse(fd.isPreferred());
}
public void testSetValue() {
String[] attributeNames = { "Blue", "Yellow", "Red", };
Object[] values = { "Blue.value", "Yellow.value", "Red.value", };
for (int i = 0; i < attributeNames.length; i++) {
fd.setValue(attributeNames[i], values[i]);
}
for (int i = 0; i < attributeNames.length; i++) {
assertSame(values[i], fd.getValue(attributeNames[i]));
}
}
public void testSetValue_ExistAttribute() {
String attributeName = "blue";
Object value = "Anyone";
fd.setValue(attributeName, value);
assertSame(value, fd.getValue(attributeName));
Object newValue = "Another";
fd.setValue(attributeName, newValue);
assertSame(newValue, fd.getValue(attributeName));
}
public void testSetValue_ValueNull() {
String attributeName = "blue";
Object value = "Anyone";
fd.setValue(attributeName, value);
assertSame(value, fd.getValue(attributeName));
try {
fd.setValue(null, value);
fail("Should throw NullPointerException");
} catch (NullPointerException e) {
// Expected
}
try {
fd.setValue(attributeName, null);
fail("Should throw NullPointerException");
} catch (NullPointerException e) {
// Expected
}
try {
fd.setValue(null, null);
fail("Should throw NullPointerException");
} catch (NullPointerException e) {
// Expected
}
}
public void testattributeNames() {
assertFalse(fd.attributeNames().hasMoreElements());
String[] attributeNames = { "Blue", "Yellow", "Red", };
Object[] values = { "Blue.value", "Yellow.value", "Red.value", };
for (int i = 0; i < attributeNames.length; i++) {
fd.setValue(attributeNames[i], values[i]);
}
Enumeration<String> names = fd.attributeNames();
Hashtable<String, Object> table = new Hashtable<String, Object>();
while (names.hasMoreElements()) {
String name = names.nextElement();
table.put(name, fd.getValue(name));
}
assertEquals(attributeNames.length, table.size());
for (String element : attributeNames) {
assertTrue(table.containsKey(element));
}
}
}