You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beehive.apache.org by js...@apache.org on 2004/10/12 23:31:05 UTC

svn commit: rev 54698 - in incubator/beehive/trunk/controls/test: . src/controls/org/apache/beehive/controls/test/controls/assembly src/units/org/apache/beehive/controls/test/java/assembly

Author: jsong
Date: Tue Oct 12 14:31:05 2004
New Revision: 54698

Added:
   incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/
   incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/AssemblyTestAssembler.java
   incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/AssemblyTestControl.java
   incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/AssemblyTestControlImpl.jcs
   incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/assembly/
   incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/assembly/AssemblyTests.java
Modified:
   incubator/beehive/trunk/controls/test/build.xml
Log:
Adding basic assembly test

Contributed by Zach Smith (zsmith@bea.com)



Modified: incubator/beehive/trunk/controls/test/build.xml
==============================================================================
--- incubator/beehive/trunk/controls/test/build.xml	(original)
+++ incubator/beehive/trunk/controls/test/build.xml	Tue Oct 12 14:31:05 2004
@@ -31,6 +31,7 @@
     <property name="build.tests" location="${build.dir}/classes/tests"/>
     <property name="build.drivers" location="${build.dir}/classes/drivers"/>
     <property name="build.beansrc" location="${build.dir}/beansrc"/>
+    <property name="build.testsrc" location="${build.dir}/testsrc"/>
     <property name="build.jars" location="${build.dir}/jars"/>
     <property name="controlstestbeans.jar" location="${build.dir}/controlstestbeans.jar"/>
     <property name="controlstestdrivers.jar" location="${build.dir}/controlstestdrivers.jar"/>
@@ -141,6 +142,7 @@
         <mkdir dir="${build.drivers}" />
         <mkdir dir="${build.tests}" />
         <mkdir dir="${build.beansrc}" />
+        <mkdir dir="${build.testsrc}" />
         <mkdir dir="${build.jars}" />
         <mkdir dir="${test.logs}" />
     </target>
@@ -221,6 +223,9 @@
 
     <target name="build-test-units" depends="build-test-drivers" unless="_build.java.tests.ran">
         <!-- Build the test source directory -->
+
+	<!-- First APT process Unit files.  There should be a lot of files in here needing
+              processing. --> 
         <apt srcdir="${controls.test.units}"
             destdir="${build.tests}"
             gendir="${build.beansrc}"
@@ -238,7 +243,35 @@
             	<pathelement path="${build.drivers}"/>
             </classpath>
         </apt>
+
+	<echo message="Assembling Tests"/>
+
+        <!-- in the assemble phase, any clients processed above which use controls requiring
+             assembly will be dealt with here -->
+        <assemble moduleDir="${build.tests}"
+                  srcOutputDir="${build.testsrc}"
+                  contextFactoryClassname="org.apache.beehive.controls.runtime.assembly.EJBAssemblyContext$Factory">
+            <classpath>
+                <path refid="test.classpath"/>
+                <pathelement location="${build.tests}"/>
+            </classpath>
+            <fileset dir="${build.tests}">
+                <include name="**/*.controls.properties"/>
+            </fileset>
+        </assemble>
+
+        <!-- build the generated files from the assemble phase -->
+        <javac srcdir="${build.testsrc}"
+            destdir="${build.tests}"
+            classpathref="test.classpath"
+            debug="on"
+            verbose="false"
+            failonerror="true" >
+            <include name="**/*generated/*"/>
+        </javac>
+
         <property name="_build.java.tests.ran" value="true"/>
+
     </target>
 
     <target name="build-test-webapp" depends="build-test-drivers" >

Added: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/AssemblyTestAssembler.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/AssemblyTestAssembler.java	Tue Oct 12 14:31:05 2004
@@ -0,0 +1,34 @@
+package org.apache.beehive.controls.test.controls.assembly;
+
+import org.apache.beehive.controls.api.assembly.ControlAssembler;
+import org.apache.beehive.controls.api.assembly.ControlAssemblyException;
+import org.apache.beehive.controls.api.assembly.ControlAssemblyContext;
+
+import java.io.FileWriter;
+import java.io.File;
+
+public class AssemblyTestAssembler implements ControlAssembler
+{
+    public void assemble(ControlAssemblyContext cac) 
+        throws ControlAssemblyException
+    {
+        String genPackageName = "org.apache.beehive.controls.test.assembly.generated";
+        String genClassName = "AssemblyTestGenerated";
+
+        /* Write basic class structure out for later 
+           compiliation and then finally instantiation in a test */
+        try {
+            FileWriter fw = new FileWriter(cac.createJavaOutputFile(genPackageName.replace(".",File.separator),
+                                                                                            genClassName));
+            fw.write("package " + genPackageName + ";" +
+                     "public class " + genClassName + "{ }");
+            fw.close();
+        }
+        catch (java.io.IOException ioe)
+        {
+            throw new ControlAssemblyException("Error writing " + 
+                                                 genPackageName.replace(".", File.separator) +
+                                                 File.separator + genClassName, ioe);
+        }
+    }
+}

Added: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/AssemblyTestControl.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/AssemblyTestControl.java	Tue Oct 12 14:31:05 2004
@@ -0,0 +1,9 @@
+package org.apache.beehive.controls.test.controls.assembly;
+
+import org.apache.beehive.controls.api.bean.ControlInterface;
+
+@ControlInterface (
+    defaultBinding = "org.apache.beehive.controls.test.controls.assembly.AssemblyTestControlImpl"
+)
+public interface AssemblyTestControl
+{ }

Added: incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/AssemblyTestControlImpl.jcs
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/src/controls/org/apache/beehive/controls/test/controls/assembly/AssemblyTestControlImpl.jcs	Tue Oct 12 14:31:05 2004
@@ -0,0 +1,9 @@
+package org.apache.beehive.controls.test.controls.assembly;
+
+import org.apache.beehive.controls.api.bean.ControlImplementation;
+
+@ControlImplementation(
+    assembler = AssemblyTestAssembler.class
+)
+public class AssemblyTestControlImpl implements java.io.Serializable
+{ }

Added: incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/assembly/AssemblyTests.java
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/controls/test/src/units/org/apache/beehive/controls/test/java/assembly/AssemblyTests.java	Tue Oct 12 14:31:05 2004
@@ -0,0 +1,51 @@
+package org.apache.beehive.controls.test.java.assembly;
+
+import junit.framework.TestCase;
+
+import org.apache.beehive.controls.api.bean.Control;
+
+import org.apache.beehive.controls.test.controls.assembly.AssemblyTestControl;
+
+import org.apache.beehive.controls.test.controls.util.TestBeanContext;
+
+import org.apache.beehive.test.tools.mantis.annotations.tch.Freq;
+import org.apache.beehive.test.tools.mantis.annotations.tch.Desc;
+
+@Freq("checkin")
+public class AssemblyTests extends TestCase
+{
+    @Control
+    public AssemblyTestControl atc;
+
+    TestBeanContext tbc = new TestBeanContext();
+
+    public AssemblyTests(String s)
+    {
+        super(s);
+    }
+
+    public void setUp()
+    {
+        this.tbc.beginContext();
+    }
+
+    public void tearDown() 
+    {
+        this.tbc.endContext();
+    }
+
+    @Desc("Test that a Class generated at assembly time is available")
+    public void testAssemblyDeclaritive() throws Exception
+    {
+        try {
+            Class c = null;
+            c = Class.forName("org.apache.beehive.controls.test.assembly" +
+                              ".generated.AssemblyTestGenerated");
+            assertNotNull(c.newInstance());
+        }
+        catch (ClassNotFoundException cnfe)
+        {
+            fail(cnfe.toString());
+        }
+    }
+}