1 15 package org.apache.tapestry.binding; 16 17 import org.apache.hivemind.ApplicationRuntimeException; 18 import org.apache.hivemind.Location; 19 import org.apache.tapestry.IComponent; 20 import org.apache.tapestry.coerce.ValueConverter; 21 import org.easymock.MockControl; 22 23 29 public class TestComponentBinding extends BindingTestCase 30 { 31 public void testGetObject() 32 { 33 IComponent nested = newComponent(); 34 35 MockControl cc = newControl(IComponent.class); 36 IComponent component = (IComponent) cc.getMock(); 37 38 component.getComponent("foo"); 39 cc.setReturnValue(nested); 40 41 ValueConverter vc = newValueConverter(); 42 43 Location l = newLocation(); 44 45 replayControls(); 46 47 ComponentBinding b = new ComponentBinding("param", vc, l, component, "foo"); 48 49 assertSame(component, b.getComponent()); 50 assertSame(nested, b.getObject()); 51 52 verifyControls(); 53 } 54 55 public void testGetObjectFailure() 56 { 57 MockControl cc = newControl(IComponent.class); 58 IComponent component = (IComponent) cc.getMock(); 59 60 Throwable t = new ApplicationRuntimeException("No such component."); 61 62 component.getComponent("foo"); 63 cc.setThrowable(t); 64 65 ValueConverter vc = newValueConverter(); 66 67 Location l = newLocation(); 68 69 replayControls(); 70 71 ComponentBinding b = new ComponentBinding("param", vc, l, component, "foo"); 72 73 try 74 { 75 b.getObject(); 76 unreachable(); 77 } 78 catch (ApplicationRuntimeException ex) 79 { 80 assertEquals(t.getMessage(), ex.getMessage()); 81 assertSame(t, ex.getRootCause()); 82 assertSame(l, ex.getLocation()); 83 } 84 85 verifyControls(); 86 } 87 } | Popular Tags |