📄 beanwrappertests.java
字号:
assertEquals(1, tb.getSortedSet().size());
assertTrue(tb.getSortedSet().containsAll(sortedSet));
assertEquals(1, tb.getList().size());
assertTrue(tb.getList().containsAll(list));
}
public void testCollectionsWithStringValues() {
IndexedTestBean tb = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(tb);
List set = new LinkedList();
set.add("set1");
bw.setPropertyValue("set", "set1");
List sortedSet = new ArrayList();
sortedSet.add("sortedSet1");
bw.setPropertyValue("sortedSet", "sortedSet1");
Set list = new HashSet();
list.add("list1");
bw.setPropertyValue("list", "list1");
assertEquals(1, tb.getSet().size());
assertTrue(tb.getSet().containsAll(set));
assertEquals(1, tb.getSortedSet().size());
assertTrue(tb.getSortedSet().containsAll(sortedSet));
assertEquals(1, tb.getList().size());
assertTrue(tb.getList().containsAll(list));
}
public void testCollectionsWithStringValuesAndCustomEditor() {
IndexedTestBean tb = new IndexedTestBean();
BeanWrapper bw = new BeanWrapperImpl(tb);
bw.registerCustomEditor(String.class, "set", new StringTrimmerEditor(false));
bw.registerCustomEditor(String.class, "list", new StringTrimmerEditor(false));
bw.setPropertyValue("set", "set1 ");
bw.setPropertyValue("sortedSet", "sortedSet1");
bw.setPropertyValue("list", "list1 ");
assertEquals(1, tb.getSet().size());
assertTrue(tb.getSet().contains("set1"));
assertEquals(1, tb.getSortedSet().size());
assertTrue(tb.getSortedSet().contains("sortedSet1"));
assertEquals(1, tb.getList().size());
assertTrue(tb.getList().contains("list1"));
bw.setPropertyValue("list", Arrays.asList(new String[] {"list1 "}));
assertTrue(tb.getList().contains("list1"));
}
public void testSetNumberProperties() {
NumberPropertyBean bean = new NumberPropertyBean();
BeanWrapper bw = new BeanWrapperImpl(bean);
String byteValue = " " + Byte.MAX_VALUE + " ";
String shortValue = " " + Short.MAX_VALUE + " ";
String intValue = " " + Integer.MAX_VALUE + " ";
String longValue = " " + Long.MAX_VALUE + " ";
String floatValue = " " + Float.MAX_VALUE + " ";
String doubleValue = " " + Double.MAX_VALUE + " ";
bw.setPropertyValue("myPrimitiveByte", byteValue);
bw.setPropertyValue("myByte", byteValue);
bw.setPropertyValue("myPrimitiveShort", shortValue);
bw.setPropertyValue("myShort", shortValue);
bw.setPropertyValue("myPrimitiveInt", intValue);
bw.setPropertyValue("myInteger", intValue);
bw.setPropertyValue("myPrimitiveLong", longValue);
bw.setPropertyValue("myLong", longValue);
bw.setPropertyValue("myPrimitiveFloat", floatValue);
bw.setPropertyValue("myFloat", floatValue);
bw.setPropertyValue("myPrimitiveDouble", doubleValue);
bw.setPropertyValue("myDouble", doubleValue);
assertEquals(Byte.MAX_VALUE, bean.getMyPrimitiveByte());
assertEquals(Byte.MAX_VALUE, bean.getMyByte().byteValue());
assertEquals(Short.MAX_VALUE, bean.getMyPrimitiveShort());
assertEquals(Short.MAX_VALUE, bean.getMyShort().shortValue());
assertEquals(Integer.MAX_VALUE, bean.getMyPrimitiveInt());
assertEquals(Integer.MAX_VALUE, bean.getMyInteger().intValue());
assertEquals(Long.MAX_VALUE, bean.getMyPrimitiveLong());
assertEquals(Long.MAX_VALUE, bean.getMyLong().longValue());
assertEquals(Float.MAX_VALUE, bean.getMyPrimitiveFloat(), 0.001);
assertEquals(Float.MAX_VALUE, bean.getMyFloat().floatValue(), 0.001);
assertEquals(Double.MAX_VALUE, bean.getMyPrimitiveDouble(), 0.001);
assertEquals(Double.MAX_VALUE, bean.getMyDouble().doubleValue(), 0.001);
}
public void testAlternativesForTypo() {
IntelliBean ib = new IntelliBean();
BeanWrapper bw = new BeanWrapperImpl(ib);
try {
bw.setPropertyValue("names", "Alef");
} catch (NotWritablePropertyException e) {
e.printStackTrace();
assertNotNull("Possible matches not determined", e.getPossibleMatches());
assertEquals("Invalid amount of alternatives", 1, e.getPossibleMatches().length);
}
}
public void testAlternativesForTypos() {
IntelliBean ib = new IntelliBean();
BeanWrapper bw = new BeanWrapperImpl(ib);
try {
bw.setPropertyValue("mystring", "Arjen");
} catch (NotWritablePropertyException e) {
e.printStackTrace();
assertNotNull("Possible matches not determined", e.getPossibleMatches());
assertEquals("Invalid amount of alternatives", 3, e.getPossibleMatches().length);
}
}
private static class DifferentTestBean extends TestBean {
// class to test naming of beans in a BeanWrapper error message
}
private static class NoRead {
public void setAge(int age) {
}
}
private static class EnumTest {
private FlushMode flushMode;
public void setFlushMode(FlushMode flushMode) {
this.flushMode = flushMode;
}
public FlushMode getFlushMode() {
return flushMode;
}
}
private static class PropsTest {
private Properties props;
private String name;
private String[] stringArray;
private int[] intArray;
public void setProperties(Properties p) {
props = p;
}
public void setName(String name) {
this.name = name;
}
public void setStringArray(String[] sa) {
this.stringArray = sa;
}
public void setIntArray(int[] intArray) {
this.intArray = intArray;
}
}
private static class GetterBean {
private String name;
public void setName(String name) {
this.name = name;
}
public String getName() {
if (this.name == null) {
throw new RuntimeException("name property must be set");
}
return name;
}
}
private static class ThrowsException {
public void doSomething(Throwable t) throws Throwable {
throw t;
}
}
private static class PrimitiveArrayBean {
private int[] array;
public int[] getArray() {
return array;
}
public void setArray(int[] array) {
this.array = array;
}
}
private static class NumberPropertyBean {
private byte myPrimitiveByte;
private Byte myByte;
private short myPrimitiveShort;
private Short myShort;
private int myPrimitiveInt;
private Integer myInteger;
private long myPrimitiveLong;
private Long myLong;
private float myPrimitiveFloat;
private Float myFloat;
private double myPrimitiveDouble;
private Double myDouble;
public byte getMyPrimitiveByte() {
return myPrimitiveByte;
}
public void setMyPrimitiveByte(byte myPrimitiveByte) {
this.myPrimitiveByte = myPrimitiveByte;
}
public Byte getMyByte() {
return myByte;
}
public void setMyByte(Byte myByte) {
this.myByte = myByte;
}
public short getMyPrimitiveShort() {
return myPrimitiveShort;
}
public void setMyPrimitiveShort(short myPrimitiveShort) {
this.myPrimitiveShort = myPrimitiveShort;
}
public Short getMyShort() {
return myShort;
}
public void setMyShort(Short myShort) {
this.myShort = myShort;
}
public int getMyPrimitiveInt() {
return myPrimitiveInt;
}
public void setMyPrimitiveInt(int myPrimitiveInt) {
this.myPrimitiveInt = myPrimitiveInt;
}
public Integer getMyInteger() {
return myInteger;
}
public void setMyInteger(Integer myInteger) {
this.myInteger = myInteger;
}
public long getMyPrimitiveLong() {
return myPrimitiveLong;
}
public void setMyPrimitiveLong(long myPrimitiveLong) {
this.myPrimitiveLong = myPrimitiveLong;
}
public Long getMyLong() {
return myLong;
}
public void setMyLong(Long myLong) {
this.myLong = myLong;
}
public float getMyPrimitiveFloat() {
return myPrimitiveFloat;
}
public void setMyPrimitiveFloat(float myPrimitiveFloat) {
this.myPrimitiveFloat = myPrimitiveFloat;
}
public Float getMyFloat() {
return myFloat;
}
public void setMyFloat(Float myFloat) {
this.myFloat = myFloat;
}
public double getMyPrimitiveDouble() {
return myPrimitiveDouble;
}
public void setMyPrimitiveDouble(double myPrimitiveDouble) {
this.myPrimitiveDouble = myPrimitiveDouble;
}
public Double getMyDouble() {
return myDouble;
}
public void setMyDouble(Double myDouble) {
this.myDouble = myDouble;
}
}
private static class IntelliBean {
public void setName(String name) {}
public void setMyString(String string) {}
public void setMyStrings(String string) {}
public void setMyStriNg(String string) {}
public void setMyStringss(String string) {}
}
public static class ReadOnlyMap extends HashMap {
private boolean frozen = false;
public ReadOnlyMap() {
this.frozen = true;
}
public ReadOnlyMap(Map map) {
super(map);
this.frozen = true;
}
public Object put(Object key, Object value) {
if (this.frozen) {
throw new UnsupportedOperationException();
}
else {
return super.put(key, value);
}
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -