Search in sources :

Example 11 with Mixin

use of org.apache.tapestry5.annotations.Mixin in project tapestry-5 by apache.

the class MutableComponentModelImplTest method mixin_name_conflict.

@Test
public void mixin_name_conflict() {
    Resource r = mockResource();
    Logger logger = mockLogger();
    replay();
    MutableComponentModel model = new MutableComponentModelImpl(CLASS_NAME, logger, r, null, false, null);
    MutableEmbeddedComponentModel fred = model.addEmbeddedComponent("fred", "Fred", COMPONENT_CLASS_NAME, false, null);
    fred.addMixin("zip.zop.Zoom");
    try {
        fred.addMixin("zip.zop.Zoom");
        unreachable();
    } catch (IllegalArgumentException ex) {
        assertEquals(ex.getMessage(), "Mixin zip.zop.Zoom (for component fred) has already been defined.");
    }
    // Make sure it wasn't actually added.
    assertEquals(fred.getMixinClassNames(), Arrays.asList("zip.zop.Zoom"));
    verify();
}
Also used : Resource(org.apache.tapestry5.commons.Resource) MutableComponentModel(org.apache.tapestry5.model.MutableComponentModel) Logger(org.slf4j.Logger) MutableEmbeddedComponentModel(org.apache.tapestry5.model.MutableEmbeddedComponentModel) Test(org.testng.annotations.Test)

Aggregations

TapestryException (org.apache.tapestry5.commons.internal.util.TapestryException)3 Instantiator (org.apache.tapestry5.internal.services.Instantiator)3 ClientElement (org.apache.tapestry5.ClientElement)2 UnknownValueException (org.apache.tapestry5.commons.util.UnknownValueException)2 Element (org.apache.tapestry5.dom.Element)2 Map (java.util.Map)1 Binding (org.apache.tapestry5.Binding)1 ComponentResources (org.apache.tapestry5.ComponentResources)1 BindParameter (org.apache.tapestry5.annotations.BindParameter)1 Mixin (org.apache.tapestry5.annotations.Mixin)1 Resource (org.apache.tapestry5.commons.Resource)1 AvailableValues (org.apache.tapestry5.commons.util.AvailableValues)1 InternalComponentResources (org.apache.tapestry5.internal.InternalComponentResources)1 LiteralBinding (org.apache.tapestry5.internal.bindings.LiteralBinding)1 ComponentWorker (org.apache.tapestry5.internal.transform.ComponentWorker)1 InjectComponentWorker (org.apache.tapestry5.internal.transform.InjectComponentWorker)1 MixinAfterWorker (org.apache.tapestry5.internal.transform.MixinAfterWorker)1 MixinWorker (org.apache.tapestry5.internal.transform.MixinWorker)1 PageActivationContextWorker (org.apache.tapestry5.internal.transform.PageActivationContextWorker)1 PropertyWorker (org.apache.tapestry5.internal.transform.PropertyWorker)1