1 /*
2 * Copyright (c) 2017, 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
155
156 try {
157 Bindings.select(root, "next", "next");
158 throw new AssertionError("ERROR: did not get the expected exception");
159 } catch (UndeclaredThrowableException ex) {
160 checkException(ex);
161 }
162
163 RootProps root2 = new RootProps();
164 MyProps c = new MyProps();
165 MyProps d = new MyProps();
166
167 root2.setNext(c);
168 c.setNext(d);
169 c.setFoo(1.2);
170 d.setFoo(2.3);
171
172 // In this case, the binding will succeed; calling get() will return 0;
173 // the first time it is called it will log a warning.
174 DoubleBinding binding3 = Bindings.selectDouble(root2, "next", "foo");
175 assertEquals(0, binding3.get()); // This will log a warning
176 c.setFoo(3.4);
177 assertEquals(0, binding3.get()); // No warning here
178
179 // In this case, the binding will succeed; calling get() will return null;
180 // the first time it is called it will log a warning.
181 ObjectBinding<MyProps> binding4 = Bindings.select(root2, "next", "next");
182 assertSame(null, binding4.get()); // This will log a warning
183 assertSame(null, binding4.get()); // No warning here
184
185 // Assert that we got 2 warnings
186 final int expectedExceptions = 2; // First call to get for each binding
187
188 if (errs.isEmpty()) {
189 throw new AssertionError("ERROR: did not get the expected exception");
190 }
191
192 assertEquals(expectedExceptions, errs.size());
193
194 for (Throwable t : errs) {
195 if (!(t instanceof RuntimeException)) {
196 throw new AssertionError("ERROR: unexpected exception: ", t);
197 }
198 checkException((RuntimeException) t);
199 }
200 }
201
|
1 /*
2 * Copyright (c) 2017, 2018, 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
155
156 try {
157 Bindings.select(root, "next", "next");
158 throw new AssertionError("ERROR: did not get the expected exception");
159 } catch (UndeclaredThrowableException ex) {
160 checkException(ex);
161 }
162
163 RootProps root2 = new RootProps();
164 MyProps c = new MyProps();
165 MyProps d = new MyProps();
166
167 root2.setNext(c);
168 c.setNext(d);
169 c.setFoo(1.2);
170 d.setFoo(2.3);
171
172 // In this case, the binding will succeed; calling get() will return 0;
173 // the first time it is called it will log a warning.
174 DoubleBinding binding3 = Bindings.selectDouble(root2, "next", "foo");
175 System.err.println("The following two WARNING messages are expected:");
176 assertEquals(0, binding3.get()); // This will log a warning
177 c.setFoo(3.4);
178 assertEquals(0, binding3.get()); // No warning here
179
180 // In this case, the binding will succeed; calling get() will return null;
181 // the first time it is called it will log a warning.
182 ObjectBinding<MyProps> binding4 = Bindings.select(root2, "next", "next");
183 System.err.println("The following two WARNING messages are expected:");
184 assertSame(null, binding4.get()); // This will log a warning
185 assertSame(null, binding4.get()); // No warning here
186
187 // Assert that we got 2 warnings
188 final int expectedExceptions = 2; // First call to get for each binding
189
190 if (errs.isEmpty()) {
191 throw new AssertionError("ERROR: did not get the expected exception");
192 }
193
194 assertEquals(expectedExceptions, errs.size());
195
196 for (Throwable t : errs) {
197 if (!(t instanceof RuntimeException)) {
198 throw new AssertionError("ERROR: unexpected exception: ", t);
199 }
200 checkException((RuntimeException) t);
201 }
202 }
203
|