1 /* 2 * Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4 * 5 * This code is free software; you can redistribute it and/or modify it 6 * under the terms of the GNU General Public License version 2 only, as 7 * published by the Free Software Foundation. Oracle designates this 8 * particular file as subject to the "Classpath" exception as provided 9 * by Oracle in the LICENSE file that accompanied this code. 10 * 11 * This code is distributed in the hope that it will be useful, but WITHOUT 12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 14 * version 2 for more details (a copy is included in the LICENSE file that 15 * accompanied this code). 16 * 17 * You should have received a copy of the GNU General Public License version 18 * 2 along with this work; if not, write to the Free Software Foundation, 19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. 20 * 21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA 22 * or visit www.oracle.com if you need additional information or have any 23 * questions. 24 */ 25 26 package test.javafx.beans.property; 27 28 import static org.junit.Assert.*; 29 import test.javafx.beans.Person; 30 31 import org.junit.Before; 32 import org.junit.Test; 33 34 import com.sun.javafx.property.PropertyReference; 35 36 public class PropertyReferenceTest { 37 38 private Person person; 39 40 @Before 41 public void setUp() { 42 person = new Person(); 43 } 44 45 @Test 46 public void testInteger() { 47 final PropertyReference<Integer> property = new PropertyReference<Integer>(Person.class, "age"); 48 assertTrue(property.isReadable()); 49 assertTrue(property.isWritable()); 50 assertTrue((int.class.equals(property.getType())) || (Integer.class.equals(property.getType()))); 51 assertEquals(person.ageProperty(), property.getProperty(person)); 52 53 assertEquals(0, person.getAge()); 54 assertEquals(Integer.valueOf(0), property.get(person)); 55 56 property.set(person, 42); 57 assertEquals(42, person.getAge()); 58 assertEquals(Integer.valueOf(42), property.get(person)); 59 } 60 61 @Test 62 public void testNoRead() { 63 final PropertyReference<Integer> property = new PropertyReference<Integer>(Person.class, "noRead"); 64 assertFalse(property.isReadable()); 65 assertTrue(property.isWritable()); 66 assertTrue((int.class.equals(property.getType())) || (Integer.class.equals(property.getType()))); 67 68 assertEquals(0, person.noRead.get()); 69 property.set(person, -311); 70 assertEquals(-311, person.noRead.get()); 71 } 72 73 @Test(expected=IllegalStateException.class) 74 public void testNoRead_IllegalRead() { 75 Person.NO_READ.get(person); 76 } 77 78 @Test(expected=IllegalStateException.class) 79 public void testNoRead_IllegalReadProperty() { 80 Person.NO_READ.getProperty(person); 81 } 82 83 @Test 84 public void testNoWrite() { 85 final PropertyReference<Integer> property = new PropertyReference<Integer>(Person.class, "noWrite"); 86 assertTrue(property.isReadable()); 87 assertFalse(property.isWritable()); 88 assertTrue((int.class.equals(property.getType())) || (Integer.class.equals(property.getType()))); 89 assertEquals(person.noWriteProperty(), property.getProperty(person)); 90 91 assertEquals(0, person.getNoWrite()); 92 assertEquals(Integer.valueOf(0), property.get(person)); 93 94 person.noWrite.set(5125); 95 assertEquals(5125, person.getNoWrite()); 96 assertEquals(Integer.valueOf(5125), property.get(person)); 97 } 98 99 @Test(expected=IllegalStateException.class) 100 public void testNoWrite_IllegalWrite() { 101 Person.NO_WRITE.set(person, 1); 102 } 103 104 @Test 105 public void testNoReadWrite() { 106 final PropertyReference<Integer> property = new PropertyReference<Integer>(Person.class, "noReadWrite"); 107 assertFalse(property.isReadable()); 108 assertFalse(property.isWritable()); 109 } 110 111 @Test(expected=IllegalStateException.class) 112 public void testNoReadWrite_IllegalRead() { 113 Person.NO_READ_WRITE.get(person); 114 } 115 116 @Test(expected=IllegalStateException.class) 117 public void testNoReadWrite_IllegalWrite() { 118 Person.NO_READ_WRITE.set(person, 1); 119 } 120 121 }