use of org.apache.tapestry5.Binding 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();
}
use of org.apache.tapestry5.Binding in project tapestry-5 by apache.
the class PropBindingFactoryTest method read_only_property.
@Test
public void read_only_property() {
TargetBean bean = new TargetBean();
ComponentResources resources = newComponentResources(bean);
Location l = mockLocation();
replay();
Binding binding = factory.newBinding("test binding", resources, null, "readOnly", l);
assertEquals(binding.get(), "ReadOnly");
try {
binding.set("fail");
unreachable();
} catch (TapestryException ex) {
assertEquals(ex.getMessage(), "Expression 'readOnly' for class org.apache.tapestry5.internal.bindings.TargetBean is read-only.");
assertEquals(ex.getLocation(), l);
}
verify();
}
use of org.apache.tapestry5.Binding in project tapestry-5 by apache.
the class PropBindingFactoryTest method object_property.
@Test
public void object_property() {
TargetBean bean = new TargetBean();
ComponentResources resources = newComponentResources(bean);
Location l = mockLocation();
replay();
Binding binding = factory.newBinding("test binding", resources, null, "objectValue", l);
assertSame(binding.getBindingType(), String.class);
bean.setObjectValue("first");
assertEquals(binding.get(), "first");
binding.set("second");
assertEquals(bean.getObjectValue(), "second");
assertEquals(InternalUtils.locationOf(binding), l);
assertEquals(binding.toString(), "PropBinding[test binding foo.Bar:baz(objectValue)]");
verify();
}
use of org.apache.tapestry5.Binding in project tapestry-5 by apache.
the class PropBindingFactoryTest method property_path_through_missing_property.
@Test
public void property_path_through_missing_property() {
TargetBean bean = new TargetBean();
ComponentResources resources = mockComponentResources();
Location l = mockLocation();
train_getComponent(resources, bean);
replay();
String propertyPath = "stringHolder.missingProperty.terminalProperty";
try {
factory.newBinding("test binding", resources, null, propertyPath, l);
unreachable();
} catch (RuntimeException ex) {
assertMessageContains(ex, "Class org.apache.tapestry5.internal.bindings.StringHolder does not contain a property", "\'missingProperty\'");
}
verify();
}
use of org.apache.tapestry5.Binding in project tapestry-5 by apache.
the class PropBindingFactoryTest method annotation_from_write_only_property.
@Test
public void annotation_from_write_only_property() {
TargetBean bean = new TargetBean();
ComponentResources resources = newComponentResources(bean);
Location l = mockLocation();
replay();
Binding binding = factory.newBinding("test binding", resources, null, "writeOnly", l);
assertEquals(binding.getAnnotation(Validate.class).value(), "writeonly");
verify();
}
Aggregations