use of org.apache.tapestry5.commons.Location in project tapestry-5 by apache.
the class PropBindingFactoryTest method property_path_through_write_only_property.
@Test
public void property_path_through_write_only_property() {
TargetBean bean = new TargetBean();
ComponentResources resources = mockComponentResources();
Location l = mockLocation();
train_getComponent(resources, bean);
replay();
String propertyPath = "writeOnly.terminalProperty";
try {
factory.newBinding("test binding", resources, null, propertyPath, l);
unreachable();
} catch (RuntimeException ex) {
assertMessageContains(ex, "Property \'writeOnly\' of class org.apache.tapestry5.internal.bindings.TargetBean", "is not readable (it has no read accessor method).");
}
verify();
}
use of org.apache.tapestry5.commons.Location in project tapestry-5 by apache.
the class PropBindingFactoryTest method method_call_as_terminal.
@Test
public void method_call_as_terminal() {
TargetBean bean = new TargetBean();
ComponentResources resources = newComponentResources(bean);
Location l = mockLocation();
replay();
Binding binding = factory.newBinding("test binding", resources, null, "stringHolderMethod().stringValue()", l);
assertSame(binding.getBindingType(), String.class);
bean.getStringHolder().setValue("first");
assertEquals(binding.get(), "first");
try {
binding.set("read-only");
unreachable();
} catch (TapestryException ex) {
assertEquals(ex.getMessage(), "Expression 'stringHolderMethod().stringValue()' for class org.apache.tapestry5.internal.bindings.TargetBean is read-only.");
assertSame(ex.getLocation(), l);
}
verify();
}
use of org.apache.tapestry5.commons.Location in project tapestry-5 by apache.
the class PropBindingFactoryTest method void_method_in_preamble.
@Test
public void void_method_in_preamble() {
TargetBean bean = new TargetBean();
ComponentResources resources = mockComponentResources();
Location l = mockLocation();
train_getComponent(resources, bean);
replay();
try {
factory.newBinding("test binding", resources, null, "voidMethod().value", l);
unreachable();
} catch (RuntimeException ex) {
assertMessageContains(ex, "Method org.apache.tapestry5.internal.bindings.TargetBean.voidMethod() returns void");
}
verify();
}
use of org.apache.tapestry5.commons.Location in project tapestry-5 by apache.
the class PropBindingFactoryTest method primitive_property.
@Test
public void primitive_property() {
TargetBean bean = new TargetBean();
ComponentResources resources = newComponentResources(bean);
Location l = mockLocation();
replay();
Binding binding = factory.newBinding("test binding", resources, null, "intValue", l);
assertSame(binding.getBindingType(), int.class);
bean.setIntValue(1);
assertEquals(binding.get(), 1);
binding.set(2);
assertEquals(bean.getIntValue(), 2);
verify();
}
use of org.apache.tapestry5.commons.Location in project tapestry-5 by apache.
the class PropBindingFactoryTest method method_not_found_in_terminal.
@Test
public void method_not_found_in_terminal() {
TargetBean bean = new TargetBean();
ComponentResources resources = mockComponentResources();
Location l = mockLocation();
train_getComponent(resources, bean);
replay();
try {
factory.newBinding("test binding", resources, null, "stringHolder.isThatRealBlood()", l);
unreachable();
} catch (RuntimeException ex) {
assertMessageContains(ex, "StringHolder", "does not contain a public method", "isThatRealBlood()");
}
verify();
}
Aggregations