blob: 87116875f5ada055de27b246d9bf9956e756ceb1 [file] [log] [blame]
/*
* 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.openide.explorer.propertysheet;
import java.awt.IllegalComponentStateException;
import java.beans.PropertyDescriptor;
import java.lang.reflect.InvocationTargetException;
import java.net.ServerSocket;
import org.netbeans.junit.NbTestCase;
/** A test of a property model.
*/
public class DefaultPropertyModelTest extends NbTestCase {
public DefaultPropertyModelTest(String name) {
super(name);
}
public void testLookupOfAPropertyReadOnlyProperty() throws Exception {
Object obj = new Object();
DefaultPropertyModel model = new DefaultPropertyModel(obj, "class");
assertEquals("Calls the get method", model.getValue(), obj.getClass());
}
public void testLookupOfAPropertyReadWriteProperty() throws Exception {
ServerSocket obj = new ServerSocket(0);
DefaultPropertyModel model = new DefaultPropertyModel(obj, "soTimeout");
assertEquals("Calls the get method", model.getValue(), new Integer(obj.getSoTimeout()));
model.setValue(new Integer(100));
assertEquals("Value change", 100, obj.getSoTimeout());
assertEquals("Model updated", model.getValue(), new Integer(obj.getSoTimeout()));
}
//
// Test of explicit beaninfo
//
public void testUsageOfExplicitPropertyDescriptor() throws Exception {
PropertyDescriptor pd = new PropertyDescriptor(
"myProp", this.getClass(),
"getterUsageOfExplicitPropertyDescriptor",
"setterUsageOfExplicitPropertyDescriptor"
);
DefaultPropertyModel model = new DefaultPropertyModel(this, pd);
assertEquals("Getter returns this", model.getValue(), this);
String msgToThrow = "msgToThrow";
try {
model.setValue(msgToThrow);
fail("Setter should throw an exception");
} catch (InvocationTargetException ex) {
// when an exception occurs it should throw InvocationTargetException
assertEquals("The right message", msgToThrow, ex.getTargetException().getMessage());
}
}
public Object getterUsageOfExplicitPropertyDescriptor() {
return this;
}
public void setterUsageOfExplicitPropertyDescriptor(Object any) {
throw new IllegalComponentStateException(any.toString());
}
//
// End of explicit beaninfo
//
}