Author: peterreilly
Date: Fri Sep 29 15:17:24 2006
New Revision: 451476

URL: http://svn.apache.org/viewvc?view=rev&rev=451476
Log:
test for unknownelement.maybecondifure

Added:
    ant/core/trunk/src/etc/testcases/core/unknownelement.xml
    ant/core/trunk/src/tests/junit/org/apache/tools/ant/UnknownElementTest.java

Added: ant/core/trunk/src/etc/testcases/core/unknownelement.xml
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/etc/testcases/core/unknownelement.xml?view=auto&rev=451476
==============================================================================
--- ant/core/trunk/src/etc/testcases/core/unknownelement.xml (added)
+++ ant/core/trunk/src/etc/testcases/core/unknownelement.xml Fri Sep 29 
15:17:24 2006
@@ -0,0 +1,19 @@
+<project>

+  <target name="testMaybeConfigure">

+    <taskdef name="parent" 

+             classname="org.apache.tools.ant.UnknownElementTest$Parent"

+             loaderref="unknown.id">

+      <classpath>

+        <pathelement location="../../../../build/testcases"/>

+        <pathelement path="${java.class.path}"/>

+      </classpath>

+    </taskdef>

+    <taskdef name="child"

+             classname="org.apache.tools.ant.UnknownElementTest$Child"

+             loaderref="unknown.id"/>

+    <parent>

+      <child/>

+      <child/>

+    </parent>

+  </target>

+</project>


Added: 
ant/core/trunk/src/tests/junit/org/apache/tools/ant/UnknownElementTest.java
URL: 
http://svn.apache.org/viewvc/ant/core/trunk/src/tests/junit/org/apache/tools/ant/UnknownElementTest.java?view=auto&rev=451476
==============================================================================
--- ant/core/trunk/src/tests/junit/org/apache/tools/ant/UnknownElementTest.java 
(added)
+++ ant/core/trunk/src/tests/junit/org/apache/tools/ant/UnknownElementTest.java 
Fri Sep 29 15:17:24 2006
@@ -0,0 +1,67 @@
+/*

+ *  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.tools.ant;

+

+import java.util.ArrayList;

+import java.util.Iterator;

+import java.util.List;

+

+

+public class UnknownElementTest extends BuildFileTest {

+    public void setUp() {

+        configureProject("src/etc/testcases/core/unknownelement.xml");

+    }

+    public void testMaybeConfigure() {

+        // make sure we do not get a NPE

+        executeTarget("testMaybeConfigure");

+    }

+

+    public static class Child extends Task {

+        Parent parent;

+        public void injectParent(Parent parent) {

+            this.parent = parent;

+        }

+        public void execute() {

+            parent.fromChild();

+        }

+    }

+

+    public static class Parent extends Task implements TaskContainer {

+        List children = new ArrayList();

+        public void addTask(Task t) {

+            children.add(t);

+        }

+

+        public void fromChild() {

+            log("fromchild");

+        }

+        

+        public void execute() {

+            for (Iterator i = children.iterator(); i.hasNext();) {

+                UnknownElement el = (UnknownElement) i.next();

+                el.maybeConfigure();

+                Child child = (Child) el.getRealThing();

+                child.injectParent(this);

+                child.perform();

+            }

+        }

+    }

+}

+

+




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to