You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by ge...@apache.org on 2009/01/12 22:53:24 UTC

svn commit: r733918 - in /incubator/openwebbeans/trunk/webbeans-impl/src/test: java/org/apache/webbeans/test/unittests/xml/definition/ java/org/apache/webbeans/test/xml/definition/ resources/org/apache/webbeans/test/xml/definition/

Author: gerdogdu
Date: Mon Jan 12 13:53:19 2009
New Revision: 733918

URL: http://svn.apache.org/viewvc?rev=733918&view=rev
Log:
OWB-39 extends the XMLDefinitionTest, thanks  Mark Struberg

Added:
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/TestBeanUnnamed.java   (with props)
    incubator/openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/test/xml/definition/testBeanUnnamed.xml   (with props)
Modified:
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/definition/XMLDefinitionTest.java
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/MockAsynchronousCreditCardPaymentProcessor.java
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/PaymentProcessor.java
    incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/SystemConfig.java

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/definition/XMLDefinitionTest.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/definition/XMLDefinitionTest.java?rev=733918&r1=733917&r2=733918&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/definition/XMLDefinitionTest.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/xml/definition/XMLDefinitionTest.java Mon Jan 12 13:53:19 2009
@@ -21,6 +21,11 @@
 import org.apache.webbeans.test.servlet.TestContext;
 import org.apache.webbeans.test.unittests.xml.XMLTest;
 import org.apache.webbeans.test.xml.definition.Definition1;
+import org.apache.webbeans.test.xml.definition.Definition2;
+import org.apache.webbeans.test.xml.definition.MockAsynchronousCreditCardPaymentProcessor;
+import org.apache.webbeans.test.xml.definition.PaymentProcessor;
+import org.apache.webbeans.test.xml.definition.SystemConfig;
+import org.apache.webbeans.test.xml.definition.TestBeanUnnamed;
 import org.apache.webbeans.xml.XMLUtil;
 import org.dom4j.Element;
 import org.junit.Before;
@@ -42,101 +47,98 @@
     @Test
     public void testDefinition1()
     {
-        Throwable e = null;
-        try
-        {
-            InputStream stream = XMLTest.class.getClassLoader().getResourceAsStream("org/apache/webbeans/test/xml/definition/definition1.xml");
-            Assert.assertNotNull(stream);
+        XMLComponentImpl<?> compDef = getWebBeanFromXml("org/apache/webbeans/test/xml/definition/definition1.xml");
 
-            clear();
+        Assert.assertEquals("definition1", compDef.getName());
 
-            Element rootElement = XMLUtil.getRootElement(stream);
-            Element beanElement = (Element) rootElement.elements().get(0);
-
-            Class<?> clazz = XMLUtil.getElementJavaType(beanElement);
-
-            defineXMLSimpleWebBeans(clazz, beanElement);
-
-            Assert.assertEquals(1, getComponents().size());
-            Object def = getComponents().get(0);
-
-            Assert.assertTrue(def instanceof XMLComponentImpl);
-
-            XMLComponentImpl<?> comp = (XMLComponentImpl<?>) def;
-
-            Assert.assertEquals("definition1", comp.getName());
-
-            Object instance = comp.create();
-
-            Assert.assertNotNull(instance);
-            Assert.assertTrue(instance instanceof Definition1);
-
-        }
-        catch (Throwable e1)
-        {
-            e1.printStackTrace();
-            e = e1;
-        }
-
-        Assert.assertNull(e);
+        Object instance = compDef.create();
 
+        Assert.assertNotNull(instance);
+        Assert.assertTrue(instance instanceof Definition1);
     }
 
+
     @Test
     public void testDefinition2()
     {
-        Throwable e = null;
-        try
-        {
-            InputStream stream = XMLTest.class.getClassLoader().getResourceAsStream("org/apache/webbeans/test/xml/definition/definition2.xml");
-            Assert.assertNotNull(stream);
-
-            clear();
+        XMLComponentImpl<?> compDef = getWebBeanFromXml("org/apache/webbeans/test/xml/definition/definition2.xml");
 
-            Element rootElement = XMLUtil.getRootElement(stream);
-            Element beanElement = (Element) rootElement.elements().get(0);
-
-            Class<?> clazz = XMLUtil.getElementJavaType(beanElement);
-
-            defineXMLSimpleWebBeans(clazz, beanElement);
-
-        }
-        catch (Throwable e1)
-        {
-            e1.printStackTrace();
-            e = e1;
-        }
-
-        Assert.assertNull(e);
+        Object instance = compDef.create();
 
+        Assert.assertNotNull(instance);
+        Assert.assertTrue(instance instanceof Definition2);
     }
 
     @Test
     public void testDefinition3()
     {
-        Throwable e = null;
-        try
-        {
-            InputStream stream = XMLTest.class.getClassLoader().getResourceAsStream("org/apache/webbeans/test/xml/definition/definition3.xml");
-            Assert.assertNotNull(stream);
+        XMLComponentImpl<?> compDef = getWebBeanFromXml("org/apache/webbeans/test/xml/definition/definition3.xml");
+        
+        // we have to additionally define the PaymentProcessor and SystemConfig
+        // which would in real world parsed by the scanner 
+        defineSimpleWebBean(PaymentProcessor.class);
+        defineSimpleWebBean(SystemConfig.class);
+        
+        Assert.assertEquals("asyncCreditCardPaymentProcessor", compDef.getName());
+        
+        Object instance = compDef.create();
+
+        Assert.assertNotNull(instance);
+        Assert.assertTrue(instance instanceof MockAsynchronousCreditCardPaymentProcessor);
+        
+        MockAsynchronousCreditCardPaymentProcessor ccProcessor = (MockAsynchronousCreditCardPaymentProcessor) instance;
+        
+        SystemConfig config = ccProcessor.getConfig();
+        Assert.assertEquals("default", config.getValue());
+        
+        PaymentProcessor paymentProcesor = ccProcessor.getPaymentProcessor();
+        Assert.assertNotNull(paymentProcesor);
+    }
+
+    @Test
+    public void testWebBeanUnnamed()
+    {
+        XMLComponentImpl<?> compDef = getWebBeanFromXml("org/apache/webbeans/test/xml/definition/testBeanUnnamed.xml");
+        
+        // an unnamed bean must not have a name 
+        Assert.assertNull(compDef.getName());
+        
+        Object instance = compDef.create();
+        Assert.assertNotNull(instance);
+        Assert.assertTrue(instance instanceof TestBeanUnnamed);
+    }
+
+    
+    /**
+     * Private helper function which loads a WebBean definition from the given xmlResourcePath.
+     * This will first do a Class lookup and take his annotations as a base, later overlaying
+     * it with the definitions from the given XML.
+     *  
+     * @param xmlResourcePath
+     * @return XMLComponentImpl<?> with the WebBean definition 
+     */
+    private XMLComponentImpl<?> getWebBeanFromXml(String xmlResourcePath)
+    {
+        InputStream stream = XMLTest.class.getClassLoader().getResourceAsStream(xmlResourcePath);
+        Assert.assertNotNull(stream);
 
-            clear();
+        clear();
 
-            Element rootElement = XMLUtil.getRootElement(stream);
-            Element beanElement = (Element) rootElement.elements().get(0);
+        Element rootElement = XMLUtil.getRootElement(stream);
+        Element beanElement = (Element) rootElement.elements().get(0);
 
-            Class<?> clazz = XMLUtil.getElementJavaType(beanElement);
+        Class<?> clazz = XMLUtil.getElementJavaType(beanElement);
 
-            defineXMLSimpleWebBeans(clazz, beanElement);
+        defineXMLSimpleWebBeans(clazz, beanElement);
 
-        }
-        catch (Throwable e1)
-        {
-            e1.printStackTrace();
-            e = e1;
-        }
+        Assert.assertEquals(1, getComponents().size());
+        Object def = getComponents().get(0);
+        
+        Assert.assertNotNull(def);
+        
+        Assert.assertTrue(def instanceof XMLComponentImpl);
 
-        Assert.assertNull(e);
+        return (XMLComponentImpl<?>) def;
     }
 
 }

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/MockAsynchronousCreditCardPaymentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/MockAsynchronousCreditCardPaymentProcessor.java?rev=733918&r1=733917&r2=733918&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/MockAsynchronousCreditCardPaymentProcessor.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/MockAsynchronousCreditCardPaymentProcessor.java Mon Jan 12 13:53:19 2009
@@ -16,9 +16,21 @@
 public class MockAsynchronousCreditCardPaymentProcessor
 {
     PaymentProcessor synchronousProcessor;
+    SystemConfig config;
 
     void init(SystemConfig config)
     {
+        this.config = config;
+    }
+
+    public SystemConfig getConfig()
+    {
+        return config;
+    }
+
+    public PaymentProcessor getPaymentProcessor()
+    {
+        return synchronousProcessor;
     }
 
 }

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/PaymentProcessor.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/PaymentProcessor.java?rev=733918&r1=733917&r2=733918&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/PaymentProcessor.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/PaymentProcessor.java Mon Jan 12 13:53:19 2009
@@ -13,6 +13,11 @@
  */
 package org.apache.webbeans.test.xml.definition;
 
+import org.apache.webbeans.test.annotation.binding.PayBy;
+import org.apache.webbeans.test.annotation.binding.Synchronous;
+
+@Synchronous
+@PayBy(value="CREDIT_CARD")
 public class PaymentProcessor
 {
 

Modified: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/SystemConfig.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/SystemConfig.java?rev=733918&r1=733917&r2=733918&view=diff
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/SystemConfig.java (original)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/SystemConfig.java Mon Jan 12 13:53:19 2009
@@ -15,5 +15,15 @@
 
 public class SystemConfig
 {
+    private String value = "default";
 
+    public String getValue()
+    {
+        return value;
+    }
+
+    public void setValue(String value)
+    {
+        this.value = value;
+    }
 }

Added: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/TestBeanUnnamed.java
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/TestBeanUnnamed.java?rev=733918&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/TestBeanUnnamed.java (added)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/TestBeanUnnamed.java Mon Jan 12 13:53:19 2009
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with this
+ * work for additional information regarding copyright ownership. The ASF
+ * licenses this file to You under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law
+ * or agreed to in writing, software distributed under the License is
+ * distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the specific language
+ * governing permissions and limitations under the License.
+ */
+package org.apache.webbeans.test.xml.definition;
+
+/**
+ * This test WebBean has no Named section neither via Annotation nor via XML definition. 
+ */
+public class TestBeanUnnamed
+{
+    public TestBeanUnnamed()
+    {
+
+    }
+
+}

Propchange: incubator/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/xml/definition/TestBeanUnnamed.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: incubator/openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/test/xml/definition/testBeanUnnamed.xml
URL: http://svn.apache.org/viewvc/incubator/openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/test/xml/definition/testBeanUnnamed.xml?rev=733918&view=auto
==============================================================================
--- incubator/openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/test/xml/definition/testBeanUnnamed.xml (added)
+++ incubator/openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/test/xml/definition/testBeanUnnamed.xml Mon Jan 12 13:53:19 2009
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<WebBeans 	xmlns="urn:java:javax.webbeans"
+		  	xmlns:myapp="urn:java:org.apache.webbeans.test.xml.definition"
+ 			xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+			xsi:schemaLocation="urn:java:javax.webbeans http://java.sun.com/jee/web-beans-1.0.xsd">
+	
+	<myapp:TestBeanUnnamed>
+		<RequestScoped/>
+		<Current/>
+		<Production/>
+	</myapp:TestBeanUnnamed>	
+	
+</WebBeans>
\ No newline at end of file

Propchange: incubator/openwebbeans/trunk/webbeans-impl/src/test/resources/org/apache/webbeans/test/xml/definition/testBeanUnnamed.xml
------------------------------------------------------------------------------
    svn:eol-style = native