You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2006/11/23 02:49:48 UTC
svn commit: r478428 [3/3] - in /tapestry/tapestry5/tapestry-core/trunk/src:
main/java/org/apache/tapestry/internal/test/
main/java/org/apache/tapestry/test/
test/java/org/apache/tapestry/internal/bindings/
test/java/org/apache/tapestry/internal/service...
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/UnclaimedFieldWorkerTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/UnclaimedFieldWorkerTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/UnclaimedFieldWorkerTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/UnclaimedFieldWorkerTest.java Wed Nov 22 17:49:47 2006
@@ -12,59 +12,58 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
-
-import static org.apache.tapestry.services.TransformConstants.CONTAINING_PAGE_DID_DETACH_SIGNATURE;
-import static org.apache.tapestry.services.TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE;
-
-import java.lang.reflect.Modifier;
-
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.model.MutableComponentModel;
-import org.apache.tapestry.services.ClassTransformation;
-import org.testng.annotations.Test;
-
-/**
- *
- */
-public class UnclaimedFieldWorkerTest extends InternalBaseTestCase
-{
- @Test
- public void no_fields()
- {
- ClassTransformation ct = newClassTransformation();
- MutableComponentModel model = newMutableComponentModel();
-
- train_findUnclaimedFields(ct);
-
- replay();
-
- new UnclaimedFieldWorker().transform(ct, model);
-
- verify();
- }
-
- @Test
- public void normal()
- {
- ClassTransformation ct = newClassTransformation();
- MutableComponentModel model = newMutableComponentModel();
-
- train_findUnclaimedFields(ct, "_fred");
-
- ct.getFieldType("_fred");
- setReturnValue("foo.Bar");
-
- ct.addField(Modifier.PRIVATE, "foo.Bar", "_fred_default");
- setReturnValue("_$fred_default");
-
- ct.extendMethod(CONTAINING_PAGE_DID_LOAD_SIGNATURE, "_$fred_default = _fred;");
- ct.extendMethod(CONTAINING_PAGE_DID_DETACH_SIGNATURE, "_fred = _$fred_default;");
-
- replay();
-
- new UnclaimedFieldWorker().transform(ct, model);
-
- verify();
- }
-}
+package org.apache.tapestry.internal.services;
+
+import static org.apache.tapestry.services.TransformConstants.CONTAINING_PAGE_DID_DETACH_SIGNATURE;
+import static org.apache.tapestry.services.TransformConstants.CONTAINING_PAGE_DID_LOAD_SIGNATURE;
+
+import java.lang.reflect.Modifier;
+
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.model.MutableComponentModel;
+import org.apache.tapestry.services.ClassTransformation;
+import org.testng.annotations.Test;
+
+/**
+ *
+ */
+public class UnclaimedFieldWorkerTest extends InternalBaseTestCase
+{
+ @Test
+ public void no_fields()
+ {
+ ClassTransformation ct = newClassTransformation();
+ MutableComponentModel model = newMutableComponentModel();
+
+ train_findUnclaimedFields(ct);
+
+ replay();
+
+ new UnclaimedFieldWorker().transform(ct, model);
+
+ verify();
+ }
+
+ @Test
+ public void normal()
+ {
+ ClassTransformation ct = newClassTransformation();
+ MutableComponentModel model = newMutableComponentModel();
+
+ train_findUnclaimedFields(ct, "_fred");
+
+ expect(ct.getFieldType("_fred")).andReturn("foo.Bar");
+
+ expect(ct.addField(Modifier.PRIVATE, "foo.Bar", "_fred_default")).andReturn(
+ "_$fred_default");
+
+ ct.extendMethod(CONTAINING_PAGE_DID_LOAD_SIGNATURE, "_$fred_default = _fred;");
+ ct.extendMethod(CONTAINING_PAGE_DID_DETACH_SIGNATURE, "_fred = _$fred_default;");
+
+ replay();
+
+ new UnclaimedFieldWorker().transform(ct, model);
+
+ verify();
+ }
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/WebSessionImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/WebSessionImplTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/WebSessionImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/services/WebSessionImplTest.java Wed Nov 22 17:49:47 2006
@@ -12,53 +12,51 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.services;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.Enumeration;
-
-import javax.servlet.http.HttpSession;
-
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
-import org.apache.tapestry.services.WebSession;
-import org.testng.annotations.Test;
-
-public class WebSessionImplTest extends InternalBaseTestCase
-{
- @Test
- public void get_attribute_names()
- {
- Enumeration e = Collections.enumeration(Arrays.asList("fred", "barney"));
- HttpSession hs = newHttpSession();
-
- hs.getAttributeNames();
- setReturnValue(e);
-
- replay();
-
- WebSession session = new WebSessionImpl(hs);
-
- assertEquals(session.getAttributeNames(), Arrays.asList("barney", "fred"));
-
- verify();
- }
-
- @Test
- public void get_attribute_names_by_prefix()
- {
- Enumeration e = Collections.enumeration(Arrays.asList("fred", "barney", "fanny"));
- HttpSession hs = newHttpSession();
-
- hs.getAttributeNames();
- setReturnValue(e);
-
- replay();
-
- WebSession session = new WebSessionImpl(hs);
-
- assertEquals(session.getAttributeNames("f"), Arrays.asList("fanny", "fred"));
-
- verify();
- }
-}
+package org.apache.tapestry.internal.services;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Enumeration;
+
+import javax.servlet.http.HttpSession;
+
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
+import org.apache.tapestry.services.WebSession;
+import org.testng.annotations.Test;
+
+public class WebSessionImplTest extends InternalBaseTestCase
+{
+ @Test
+ public void get_attribute_names()
+ {
+ Enumeration e = Collections.enumeration(Arrays.asList("fred", "barney"));
+ HttpSession hs = newHttpSession();
+
+ expect(hs.getAttributeNames()).andReturn(e);
+
+ replay();
+
+ WebSession session = new WebSessionImpl(hs);
+
+ assertEquals(session.getAttributeNames(), Arrays.asList("barney", "fred"));
+
+ verify();
+ }
+
+ @Test
+ public void get_attribute_names_by_prefix()
+ {
+ Enumeration e = Collections.enumeration(Arrays.asList("fred", "barney", "fanny"));
+ HttpSession hs = newHttpSession();
+
+ expect(hs.getAttributeNames()).andReturn(e);
+
+ replay();
+
+ WebSession session = new WebSessionImpl(hs);
+
+ assertEquals(session.getAttributeNames("f"), Arrays.asList("fanny", "fred"));
+
+ verify();
+ }
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/structure/ComponentPageElementImplTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/structure/ComponentPageElementImplTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/structure/ComponentPageElementImplTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/structure/ComponentPageElementImplTest.java Wed Nov 22 17:49:47 2006
@@ -12,455 +12,448 @@
// See the License for the specific language governing permissions and
// limitations under the License.
-package org.apache.tapestry.internal.structure;
-
-import org.apache.commons.logging.Log;
-import org.apache.tapestry.Binding;
-import org.apache.tapestry.ComponentResources;
-import org.apache.tapestry.internal.InternalComponentResources;
-import org.apache.tapestry.internal.services.Instantiator;
-import org.apache.tapestry.internal.test.InternalBaseTestCase;
+package org.apache.tapestry.internal.structure;
+
+import org.apache.commons.logging.Log;
+import org.apache.tapestry.Binding;
+import org.apache.tapestry.ComponentResources;
+import org.apache.tapestry.internal.InternalComponentResources;
+import org.apache.tapestry.internal.services.Instantiator;
+import org.apache.tapestry.internal.test.InternalBaseTestCase;
import org.apache.tapestry.ioc.Location;
import org.apache.tapestry.ioc.internal.util.TapestryException;
-import org.apache.tapestry.ioc.services.TypeCoercer;
-import org.apache.tapestry.model.ComponentModel;
-import org.apache.tapestry.model.ParameterModel;
-import org.apache.tapestry.runtime.Component;
-import org.easymock.EasyMock;
-import org.testng.annotations.Test;
-
-public class ComponentPageElementImplTest extends InternalBaseTestCase
-{
- @Test
- public void parameter_is_bound()
- {
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- Binding binding = newBinding();
- TypeCoercer coercer = newTypeCoercer();
-
- Instantiator ins = newInstantiator(component, model);
-
- train_getLog(model, newLog());
-
- train_getParameterModel(model, "barney", null);
-
- train_getSupportsInformalParameters(model, true);
-
- replay();
-
- ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- ComponentResources resources = cpe.getComponentResources();
- assertFalse(resources.isBound("fred"));
-
- cpe.addParameter("barney", binding);
-
- assertFalse(resources.isBound("fred"));
- assertTrue(resources.isBound("barney"));
-
- verify();
- }
-
- @Test
- public void verify_required_parameters_all_are_bound()
- {
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- Binding binding = newBinding();
- TypeCoercer coercer = newTypeCoercer();
- ParameterModel pmodel = newParameterModel();
-
- Instantiator ins = newInstantiator(component, model);
-
- train_getLog(model, newLog());
-
- train_getParameterNames(model, "barney");
- train_getParameterModel(model, "barney", pmodel);
-
- component.containingPageDidLoad();
-
- replay();
-
- ComponentPageElementImpl cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- cpe.addParameter("barney", binding);
-
- cpe.containingPageDidLoad();
-
- verify();
- }
-
- @Test
- public void verify_required_parameters_unbound_but_not_required()
- {
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- ParameterModel pmodel = newParameterModel();
- TypeCoercer coercer = newTypeCoercer();
-
- Instantiator ins = newInstantiator(component, model);
-
- train_getLog(model, newLog());
-
- train_getParameterNames(model, "barney");
- train_getParameterModel(model, "barney", pmodel);
- train_isRequired(pmodel, false);
-
- component.containingPageDidLoad();
-
- replay();
-
- ComponentPageElementImpl cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- cpe.containingPageDidLoad();
-
- verify();
- }
-
- @Test
- public void verify_required_parameters_unbound_and_required()
- {
- Log log = newLog();
- Page page = newPage();
- ComponentPageElement container = newComponentPageElement();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- ParameterModel pmodel = newParameterModel();
- Location l = newLocation();
- TypeCoercer coercer = newTypeCoercer();
-
- Instantiator ins = newInstantiator(component, model);
-
- train_getLog(model, log);
-
- train_getNestedId(container, null);
- train_getName(page, "foo.pages.MyPage");
-
- train_getParameterNames(model, "wilma", "barney", "fred");
- train_getParameterModel(model, "wilma", pmodel);
- train_isRequired(pmodel, true);
-
- train_getParameterModel(model, "barney", pmodel);
- train_isRequired(pmodel, false);
-
- train_getParameterModel(model, "fred", pmodel);
- train_isRequired(pmodel, true);
-
- train_getComponentClassName(model, "foo.components.MyComponent");
-
- replay();
-
- ComponentPageElementImpl cpe = new ComponentPageElementImpl(page, container, "myid", ins,
- coercer, l);
-
- try
- {
- cpe.containingPageDidLoad();
- }
- catch (TapestryException ex)
- {
- assertEquals(
- ex.getMessage(),
- "Parameter(s) fred, wilma are required for foo.components.MyComponent, but have not been bound.");
- assertSame(ex.getLocation(), l);
- }
-
- verify();
- }
-
- @Test
- public void is_invariant()
- {
- Log log = newLog();
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- Binding binding = newBinding();
- TypeCoercer coercer = newTypeCoercer();
- ParameterModel pmodel = newParameterModel();
-
- Instantiator ins = newInstantiator(component, model);
-
- train_getLog(model, log);
-
- train_getParameterModel(model, "barney", pmodel);
-
- binding.isInvariant();
- setReturnValue(true);
-
- replay();
-
- ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- assertFalse(cpe.getComponentResources().isInvariant("fred"));
-
- cpe.addParameter("barney", binding);
-
- assertFalse(cpe.getComponentResources().isInvariant("fred"));
- assertTrue(cpe.getComponentResources().isInvariant("barney"));
-
- verify();
- }
-
- @Test
- public void read_binding()
- {
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- TypeCoercer coercer = newTypeCoercer();
- Binding binding = newBinding();
-
- train_getSupportsInformalParameters(model, true);
-
- Long boundValue = new Long(23);
-
- Instantiator ins = newInstantiator(component, model);
-
- train_getLog(model, newLog());
-
- train_getParameterModel(model, "barney", null);
-
- binding.get();
- setReturnValue(boundValue);
-
- train_coerce(coercer, boundValue, Long.class, boundValue);
-
- replay();
-
- ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- cpe.addParameter("barney", binding);
-
- assertSame(cpe.getComponentResources().readParameter("barney", Long.class), boundValue);
-
- verify();
- }
-
- protected final void train_getSupportsInformalParameters(ComponentModel model, boolean supports)
- {
- model.getSupportsInformalParameters();
- setReturnValue(supports);
- }
-
- @Test
- public void write_binding()
- {
- Log log = newLog();
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- TypeCoercer coercer = newTypeCoercer();
- Binding binding = newBinding();
-
- Instantiator ins = newInstantiator(component, model);
-
- train_getParameterModel(model, "barney", null);
-
- train_getSupportsInformalParameters(model, true);
-
- train_getLog(model, log);
-
- binding.getBindingType();
- setReturnValue(Integer.class);
-
- train_coerce(coercer, 23, Integer.class, 23);
-
- binding.set(23);
-
- replay();
-
- ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- cpe.addParameter("barney", binding);
-
- cpe.getComponentResources().writeParameter("barney", 23);
-
- verify();
- }
-
- @Test
- public void get_embedded_does_not_exist()
- {
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- TypeCoercer coercer = newTypeCoercer();
-
- Instantiator ins = newInstantiator(component, model);
-
- train_getLog(model, newLog());
-
- replay();
-
- ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- try
- {
- cpe.getEmbeddedElement("unknown");
- unreachable();
- }
- catch (IllegalArgumentException ex)
- {
- assertEquals(ex.getMessage(), "Component " + component.getClass().getName()
- + " does not contain an embedded component with id 'unknown'.");
- }
-
- verify();
- }
-
- @Test
- public void get_existing_embedded_component()
- {
- Log log = newLog();
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- ComponentPageElement childElement = newComponentPageElement();
- Component childComponent = newComponent();
- TypeCoercer coercer = newTypeCoercer();
-
- Instantiator ins = newInstantiator(component, model);
-
- train_getLog(model, log);
-
- train_getId(childElement, "child");
- train_getComponent(childElement, childComponent);
-
- replay();
-
- ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- cpe.addEmbeddedElement(childElement);
-
- assertSame(childComponent, cpe.getComponentResources().getEmbeddedComponent("child"));
-
- verify();
- }
-
- @Test
- public void get_mixin_by_class_name()
- {
- Log log = newLog();
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- TypeCoercer coercer = newTypeCoercer();
- final String mixinClassName = "foo.Bar";
- Component mixin = newComponent();
- ComponentModel mixinModel = newComponentModel();
-
- Instantiator ins = newInstantiator(component, model);
- Instantiator mixinIns = newInstantiator(mixin, mixinModel);
-
- train_getComponentClassName(mixinModel, mixinClassName);
-
- train_getLog(model, log);
-
- replay();
-
- ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- cpe.addMixin(mixinIns);
-
- assertSame(cpe.getMixinByClassName(mixinClassName), mixin);
-
- verify();
- }
-
- @Test
- public void get_mixin_by_unknown_class_name()
- {
- Log log = newLog();
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- TypeCoercer coercer = newTypeCoercer();
- Component mixin = newComponent();
- ComponentModel mixinModel = newComponentModel();
-
- Instantiator ins = newInstantiator(component, model);
- Instantiator mixinIns = newInstantiator(mixin, mixinModel);
-
- train_getComponentClassName(mixinModel, "foo.Bar");
-
- train_getLog(model, log);
-
- replay();
-
- ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- cpe.addMixin(mixinIns);
-
- try
- {
- cpe.getMixinByClassName("foo.Baz");
- unreachable();
- }
- catch (IllegalArgumentException ex)
- {
- assertTrue(ex.getMessage().endsWith(" does not contain a mixin of type foo.Baz."));
- }
-
- verify();
-
- }
-
- @Test
- public void set_explicit_parameter_of_unknown_mixin()
- {
- Log log = newLog();
- Page page = newPage();
- Component component = newComponent();
- ComponentModel model = newComponentModel();
- ComponentModel mixinModel = newComponentModel();
- Component mixin = newComponent();
- TypeCoercer coercer = newTypeCoercer();
- Binding binding = newBinding();
-
- Instantiator ins = newInstantiator(component, model);
- Instantiator mixinInstantiator = newInstantiator(mixin, mixinModel);
-
- train_getLog(model, log);
-
- train_getComponentClassName(mixinModel, "foo.Fred");
-
- replay();
-
- ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
-
- cpe.addMixin(mixinInstantiator);
-
- try
- {
- cpe.addParameter("Wilma.barney", binding);
- unreachable();
- }
- catch (TapestryException ex)
- {
- assertTrue(ex.getMessage().contains(
- "does not contain a mixin named 'Wilma' (setting parameter 'Wilma.barney')"));
- }
-
- verify();
- }
-
- private Instantiator newInstantiator(Component component, ComponentModel model)
- {
- Instantiator ins = newMock(Instantiator.class);
-
- ins.getModel();
- setReturnValue(model).anyTimes();
-
- ins.newInstance(EasyMock.isA(InternalComponentResources.class));
-
- setReturnValue(component);
-
- return ins;
- }
-
-}
+import org.apache.tapestry.ioc.services.TypeCoercer;
+import org.apache.tapestry.model.ComponentModel;
+import org.apache.tapestry.model.ParameterModel;
+import org.apache.tapestry.runtime.Component;
+import org.easymock.EasyMock;
+import org.testng.annotations.Test;
+
+public class ComponentPageElementImplTest extends InternalBaseTestCase
+{
+ @Test
+ public void parameter_is_bound()
+ {
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ Binding binding = newBinding();
+ TypeCoercer coercer = newTypeCoercer();
+
+ Instantiator ins = newInstantiator(component, model);
+
+ train_getLog(model, newLog());
+
+ train_getParameterModel(model, "barney", null);
+
+ train_getSupportsInformalParameters(model, true);
+
+ replay();
+
+ ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ ComponentResources resources = cpe.getComponentResources();
+ assertFalse(resources.isBound("fred"));
+
+ cpe.addParameter("barney", binding);
+
+ assertFalse(resources.isBound("fred"));
+ assertTrue(resources.isBound("barney"));
+
+ verify();
+ }
+
+ @Test
+ public void verify_required_parameters_all_are_bound()
+ {
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ Binding binding = newBinding();
+ TypeCoercer coercer = newTypeCoercer();
+ ParameterModel pmodel = newParameterModel();
+
+ Instantiator ins = newInstantiator(component, model);
+
+ train_getLog(model, newLog());
+
+ train_getParameterNames(model, "barney");
+ train_getParameterModel(model, "barney", pmodel);
+
+ component.containingPageDidLoad();
+
+ replay();
+
+ ComponentPageElementImpl cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ cpe.addParameter("barney", binding);
+
+ cpe.containingPageDidLoad();
+
+ verify();
+ }
+
+ @Test
+ public void verify_required_parameters_unbound_but_not_required()
+ {
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ ParameterModel pmodel = newParameterModel();
+ TypeCoercer coercer = newTypeCoercer();
+
+ Instantiator ins = newInstantiator(component, model);
+
+ train_getLog(model, newLog());
+
+ train_getParameterNames(model, "barney");
+ train_getParameterModel(model, "barney", pmodel);
+ train_isRequired(pmodel, false);
+
+ component.containingPageDidLoad();
+
+ replay();
+
+ ComponentPageElementImpl cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ cpe.containingPageDidLoad();
+
+ verify();
+ }
+
+ @Test
+ public void verify_required_parameters_unbound_and_required()
+ {
+ Log log = newLog();
+ Page page = newPage();
+ ComponentPageElement container = newComponentPageElement();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ ParameterModel pmodel = newParameterModel();
+ Location l = newLocation();
+ TypeCoercer coercer = newTypeCoercer();
+
+ Instantiator ins = newInstantiator(component, model);
+
+ train_getLog(model, log);
+
+ train_getNestedId(container, null);
+ train_getName(page, "foo.pages.MyPage");
+
+ train_getParameterNames(model, "wilma", "barney", "fred");
+ train_getParameterModel(model, "wilma", pmodel);
+ train_isRequired(pmodel, true);
+
+ train_getParameterModel(model, "barney", pmodel);
+ train_isRequired(pmodel, false);
+
+ train_getParameterModel(model, "fred", pmodel);
+ train_isRequired(pmodel, true);
+
+ train_getComponentClassName(model, "foo.components.MyComponent");
+
+ replay();
+
+ ComponentPageElementImpl cpe = new ComponentPageElementImpl(page, container, "myid", ins,
+ coercer, l);
+
+ try
+ {
+ cpe.containingPageDidLoad();
+ }
+ catch (TapestryException ex)
+ {
+ assertEquals(
+ ex.getMessage(),
+ "Parameter(s) fred, wilma are required for foo.components.MyComponent, but have not been bound.");
+ assertSame(ex.getLocation(), l);
+ }
+
+ verify();
+ }
+
+ @Test
+ public void is_invariant()
+ {
+ Log log = newLog();
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ Binding binding = newBinding();
+ TypeCoercer coercer = newTypeCoercer();
+ ParameterModel pmodel = newParameterModel();
+
+ Instantiator ins = newInstantiator(component, model);
+
+ train_getLog(model, log);
+
+ train_getParameterModel(model, "barney", pmodel);
+
+ train_isInvariant(binding, true);
+
+ replay();
+
+ ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ assertFalse(cpe.getComponentResources().isInvariant("fred"));
+
+ cpe.addParameter("barney", binding);
+
+ assertFalse(cpe.getComponentResources().isInvariant("fred"));
+ assertTrue(cpe.getComponentResources().isInvariant("barney"));
+
+ verify();
+ }
+
+ @Test
+ public void read_binding()
+ {
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ TypeCoercer coercer = newTypeCoercer();
+ Binding binding = newBinding();
+
+ train_getSupportsInformalParameters(model, true);
+
+ Long boundValue = new Long(23);
+
+ Instantiator ins = newInstantiator(component, model);
+
+ train_getLog(model, newLog());
+
+ train_getParameterModel(model, "barney", null);
+
+ train_get(binding, boundValue);
+
+ train_coerce(coercer, boundValue, Long.class, boundValue);
+
+ replay();
+
+ ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ cpe.addParameter("barney", binding);
+
+ assertSame(cpe.getComponentResources().readParameter("barney", Long.class), boundValue);
+
+ verify();
+ }
+
+ protected final void train_getSupportsInformalParameters(ComponentModel model, boolean supports)
+ {
+ expect(model.getSupportsInformalParameters()).andReturn(supports);
+ }
+
+ @Test
+ public void write_binding()
+ {
+ Log log = newLog();
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ TypeCoercer coercer = newTypeCoercer();
+ Binding binding = newBinding();
+
+ Instantiator ins = newInstantiator(component, model);
+
+ train_getParameterModel(model, "barney", null);
+
+ train_getSupportsInformalParameters(model, true);
+
+ train_getLog(model, log);
+
+ expect(binding.getBindingType()).andReturn(Integer.class);
+
+ train_coerce(coercer, 23, Integer.class, 23);
+
+ binding.set(23);
+
+ replay();
+
+ ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ cpe.addParameter("barney", binding);
+
+ cpe.getComponentResources().writeParameter("barney", 23);
+
+ verify();
+ }
+
+ @Test
+ public void get_embedded_does_not_exist()
+ {
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ TypeCoercer coercer = newTypeCoercer();
+
+ Instantiator ins = newInstantiator(component, model);
+
+ train_getLog(model, newLog());
+
+ replay();
+
+ ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ try
+ {
+ cpe.getEmbeddedElement("unknown");
+ unreachable();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ assertEquals(ex.getMessage(), "Component " + component.getClass().getName()
+ + " does not contain an embedded component with id 'unknown'.");
+ }
+
+ verify();
+ }
+
+ @Test
+ public void get_existing_embedded_component()
+ {
+ Log log = newLog();
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ ComponentPageElement childElement = newComponentPageElement();
+ Component childComponent = newComponent();
+ TypeCoercer coercer = newTypeCoercer();
+
+ Instantiator ins = newInstantiator(component, model);
+
+ train_getLog(model, log);
+
+ train_getId(childElement, "child");
+ train_getComponent(childElement, childComponent);
+
+ replay();
+
+ ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ cpe.addEmbeddedElement(childElement);
+
+ assertSame(childComponent, cpe.getComponentResources().getEmbeddedComponent("child"));
+
+ verify();
+ }
+
+ @Test
+ public void get_mixin_by_class_name()
+ {
+ Log log = newLog();
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ TypeCoercer coercer = newTypeCoercer();
+ final String mixinClassName = "foo.Bar";
+ Component mixin = newComponent();
+ ComponentModel mixinModel = newComponentModel();
+
+ Instantiator ins = newInstantiator(component, model);
+ Instantiator mixinIns = newInstantiator(mixin, mixinModel);
+
+ train_getComponentClassName(mixinModel, mixinClassName);
+
+ train_getLog(model, log);
+
+ replay();
+
+ ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ cpe.addMixin(mixinIns);
+
+ assertSame(cpe.getMixinByClassName(mixinClassName), mixin);
+
+ verify();
+ }
+
+ @Test
+ public void get_mixin_by_unknown_class_name()
+ {
+ Log log = newLog();
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ TypeCoercer coercer = newTypeCoercer();
+ Component mixin = newComponent();
+ ComponentModel mixinModel = newComponentModel();
+
+ Instantiator ins = newInstantiator(component, model);
+ Instantiator mixinIns = newInstantiator(mixin, mixinModel);
+
+ train_getComponentClassName(mixinModel, "foo.Bar");
+
+ train_getLog(model, log);
+
+ replay();
+
+ ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ cpe.addMixin(mixinIns);
+
+ try
+ {
+ cpe.getMixinByClassName("foo.Baz");
+ unreachable();
+ }
+ catch (IllegalArgumentException ex)
+ {
+ assertTrue(ex.getMessage().endsWith(" does not contain a mixin of type foo.Baz."));
+ }
+
+ verify();
+
+ }
+
+ @Test
+ public void set_explicit_parameter_of_unknown_mixin()
+ {
+ Log log = newLog();
+ Page page = newPage();
+ Component component = newComponent();
+ ComponentModel model = newComponentModel();
+ ComponentModel mixinModel = newComponentModel();
+ Component mixin = newComponent();
+ TypeCoercer coercer = newTypeCoercer();
+ Binding binding = newBinding();
+
+ Instantiator ins = newInstantiator(component, model);
+ Instantiator mixinInstantiator = newInstantiator(mixin, mixinModel);
+
+ train_getLog(model, log);
+
+ train_getComponentClassName(mixinModel, "foo.Fred");
+
+ replay();
+
+ ComponentPageElement cpe = new ComponentPageElementImpl(page, ins, coercer);
+
+ cpe.addMixin(mixinInstantiator);
+
+ try
+ {
+ cpe.addParameter("Wilma.barney", binding);
+ unreachable();
+ }
+ catch (TapestryException ex)
+ {
+ assertTrue(ex.getMessage().contains(
+ "does not contain a mixin named 'Wilma' (setting parameter 'Wilma.barney')"));
+ }
+
+ verify();
+ }
+
+ private Instantiator newInstantiator(Component component, ComponentModel model)
+ {
+ Instantiator ins = newMock(Instantiator.class);
+
+ expect(ins.getModel()).andReturn(model).anyTimes();
+
+ expect(ins.newInstance(EasyMock.isA(InternalComponentResources.class)))
+ .andReturn(component);
+
+ return ins;
+ }
+}
Modified: tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/InternalUtilsTest.java
URL: http://svn.apache.org/viewvc/tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/InternalUtilsTest.java?view=diff&rev=478428&r1=478427&r2=478428
==============================================================================
--- tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/InternalUtilsTest.java (original)
+++ tapestry/tapestry5/tapestry-core/trunk/src/test/java/org/apache/tapestry/internal/util/InternalUtilsTest.java Wed Nov 22 17:49:47 2006
@@ -202,8 +202,7 @@
Location l = newLocation();
Locatable locatable = newMock(Locatable.class);
- locatable.getLocation();
- setReturnValue(l);
+ expect(locatable.getLocation()).andReturn(l);
replay();