You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2012/11/08 15:02:56 UTC
svn commit: r1407086 - in /openwebbeans/trunk/webbeans-impl/src/test:
java/org/apache/webbeans/newtests/decorators/multiple/
java/org/apache/webbeans/newtests/decorators/tests/
resources/org/apache/webbeans/newtests/decorators/tests/
Author: rmannibucau
Date: Thu Nov 8 14:02:55 2012
New Revision: 1407086
URL: http://svn.apache.org/viewvc?rev=1407086&view=rev
Log:
adding MultipleCallDecoratorTest test to let work on it
Added:
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/MultipleCallDecorator.java
- copied, changed from r1406406, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/Decorator1.java
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.java
- copied, changed from r1406406, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/AbstractDecoratorTest.java
openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.xml
- copied, changed from r1406406, openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/AbstractDecoratorTest.xml
Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/MultipleCallDecorator.java (from r1406406, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/Decorator1.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/MultipleCallDecorator.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/MultipleCallDecorator.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/Decorator1.java&r1=1406406&r2=1407086&rev=1407086&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/Decorator1.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/multiple/MultipleCallDecorator.java Thu Nov 8 14:02:55 2012
@@ -23,36 +23,25 @@ import javax.decorator.Delegate;
import javax.inject.Inject;
@Decorator
-public class Decorator1 implements IOutputProvider
+public class MultipleCallDecorator implements IOutputProvider
{
@Inject @Delegate IOutputProvider op;
-
- @Inject RequestStringBuilder rsb;
- public void init()
- {
- System.out.println("decorator created!");
+ public String getOutput() {
+ return null;
}
- public String getOutput()
- {
- rsb.addOutput("Decorator1\n");
- return op.getOutput();
+ public String trace() {
+ op.trace();
+ return op.trace();
}
- public String trace()
- {
- return "Decorator1/trace," + op.trace();
- }
- public String otherMethod()
- {
- return "Decorator1/otherMethod," + op.otherMethod();
+ public String otherMethod() {
+ return null;
}
- @Override
- public String getDelayedOutput() throws InterruptedException
- {
- return op.getDelayedOutput();
+ public String getDelayedOutput() throws InterruptedException {
+ return null;
}
}
Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.java (from r1406406, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/AbstractDecoratorTest.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/AbstractDecoratorTest.java&r1=1406406&r2=1407086&rev=1407086&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/AbstractDecoratorTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.java Thu Nov 8 14:02:55 2012
@@ -18,67 +18,46 @@
*/
package org.apache.webbeans.newtests.decorators.tests;
-import java.util.ArrayList;
-import java.util.Collection;
-
-import javax.enterprise.inject.Default;
-import javax.enterprise.inject.spi.Bean;
-import javax.enterprise.util.AnnotationLiteral;
-
-import junit.framework.Assert;
-
import org.apache.webbeans.newtests.AbstractUnitTest;
-import org.apache.webbeans.newtests.decorators.multiple.Decorator1;
-import org.apache.webbeans.newtests.decorators.multiple.Decorator2;
-import org.apache.webbeans.newtests.decorators.multiple.Decorator3;
-import org.apache.webbeans.newtests.decorators.multiple.Decorator4;
import org.apache.webbeans.newtests.decorators.multiple.IOutputProvider;
+import org.apache.webbeans.newtests.decorators.multiple.MultipleCallDecorator;
import org.apache.webbeans.newtests.decorators.multiple.OutputProvider;
import org.apache.webbeans.newtests.decorators.multiple.RequestStringBuilder;
+import org.junit.Ignore;
import org.junit.Test;
-public class AbstractDecoratorTest extends AbstractUnitTest
+import javax.enterprise.inject.Default;
+import javax.enterprise.inject.spi.Bean;
+import javax.enterprise.util.AnnotationLiteral;
+import java.util.ArrayList;
+import java.util.Collection;
+
+import static org.junit.Assert.assertEquals;
+
+public class MultipleCallDecoratorTest extends AbstractUnitTest
{
public static final String PACKAGE_NAME = MultipleDecoratorStackTests.class.getPackage().getName();
@Test
+ @Ignore("Decorator can't call twice the delegate")
public void testDecoratorStackWithAbstractAtEnd()
{
Collection<Class<?>> classes = new ArrayList<Class<?>>();
- classes.add(Decorator1.class);
- classes.add(Decorator2.class);
-
- //Abstract Decorator with a single method, at the end of the execution order
- classes.add(Decorator3.class);
-
- //Abstract Decorator with no methods, in the middle of the execution order
- classes.add(Decorator4.class);
-
+ classes.add(MultipleCallDecorator.class);
classes.add(IOutputProvider.class);
classes.add(OutputProvider.class);
classes.add(RequestStringBuilder.class);
Collection<String> xmls = new ArrayList<String>();
- xmls.add(getXmlPath(PACKAGE_NAME, "AbstractDecoratorTest"));
+ xmls.add(getXmlPath(PACKAGE_NAME, "MultipleCallDecoratorTest"));
startContainer(classes, xmls);
Bean<?> bean = getBeanManager().getBeans(OutputProvider.class, new AnnotationLiteral<Default>()
{
}).iterator().next();
- Object instance = getBeanManager().getReference(bean, OutputProvider.class, getBeanManager().createCreationalContext(bean));
-
- OutputProvider outputProvider = (OutputProvider) instance;
-
- Assert.assertTrue(outputProvider != null);
- String result = outputProvider.getOutput();
- System.out.println(result);
- // Verify that the Decorators were called in order, and in a stack, including the Abstract Decorator 3
- Assert.assertTrue(result.equalsIgnoreCase("Decorator1\nDecorator2\nDecorator3\nOutputProvider\n"));
-
- String hijackedStack = outputProvider.trace();
- // Verify that the a method change in Decorator2 from trace->otherMethod results in the right stack
- Assert.assertEquals("Decorator1/trace,Decorator2/trace,delegate/otherMethod", hijackedStack);
+ IOutputProvider instance = (IOutputProvider) getBeanManager().getReference(bean, IOutputProvider.class, getBeanManager().createCreationalContext(bean));
+ assertEquals("delegate/trace", instance.trace()); // StackOverFlow
}
}
\ No newline at end of file
Copied: openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.xml (from r1406406, openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/AbstractDecoratorTest.xml)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.xml?p2=openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.xml&p1=openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/AbstractDecoratorTest.xml&r1=1406406&r2=1407086&rev=1407086&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/AbstractDecoratorTest.xml (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/newtests/decorators/tests/MultipleCallDecoratorTest.xml Thu Nov 8 14:02:55 2012
@@ -19,9 +19,6 @@ under the License.
-->
<beans>
<decorators>
- <class>org.apache.webbeans.newtests.decorators.multiple.Decorator1</class>
- <class>org.apache.webbeans.newtests.decorators.multiple.Decorator4</class>
- <class>org.apache.webbeans.newtests.decorators.multiple.Decorator2</class>
- <class>org.apache.webbeans.newtests.decorators.multiple.Decorator3</class>
+ <class>org.apache.webbeans.newtests.decorators.multiple.MultipleCallDecorator</class>
</decorators>
</beans>
\ No newline at end of file