summaryrefslogtreecommitdiffstats
path: root/test/src/net/sf/antcontrib/logic/ForeachTaskTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'test/src/net/sf/antcontrib/logic/ForeachTaskTest.java')
-rw-r--r--test/src/net/sf/antcontrib/logic/ForeachTaskTest.java99
1 files changed, 99 insertions, 0 deletions
diff --git a/test/src/net/sf/antcontrib/logic/ForeachTaskTest.java b/test/src/net/sf/antcontrib/logic/ForeachTaskTest.java
new file mode 100644
index 0000000..b02e453
--- /dev/null
+++ b/test/src/net/sf/antcontrib/logic/ForeachTaskTest.java
@@ -0,0 +1,99 @@
+/*
+ * Copyright (c) 2001-2004 Ant-Contrib project. All rights reserved.
+ *
+ * Licensed 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 net.sf.antcontrib.logic;
+
+import org.apache.tools.ant.BuildFileTest;
+
+/**
+ * Testcase for <foreach>.
+ */
+public class ForeachTaskTest extends BuildFileTest {
+
+ public ForeachTaskTest(String name) {
+ super(name);
+ }
+
+ public void setUp() {
+ configureProject("test/resources/logic/foreach.xml");
+ }
+
+ public void tearDown() {
+ executeTarget("teardown");
+ }
+
+ public void testSimpleList() {
+ simpleTest("simpleList");
+ }
+
+ public void testDelimiter() {
+ simpleTest("delimiter");
+ }
+
+ public void testFileset() {
+ simpleTest("fileset");
+ assertTrue(getLog().indexOf("The nested fileset element is deprectated,"
+ + " use a nested path instead") > -1);
+ }
+
+ public void testFilesetAndList() {
+ simpleTest("filesetAndList");
+ assertTrue(getLog().indexOf("The nested fileset element is deprectated,"
+ + " use a nested path instead") > -1);
+ }
+
+ public void testNoList() {
+ expectSpecificBuildException("noList", "neither list nor fileset",
+ "You must have a list or path to iterate through");
+ }
+
+ public void testNoTarget() {
+ expectSpecificBuildException("noTarget", "no target",
+ "You must supply a target to perform");
+ }
+
+ public void testNoParam() {
+ expectSpecificBuildException("noParam", "no param",
+ "You must supply a property name to set on each iteration in param");
+ }
+
+ public void testNestedParam() {
+ executeTarget("nestedParam");
+ assertTrue(getLog().indexOf("Called with param: rincewind") > -1);
+ }
+
+ public void testNestedReference() {
+ executeTarget("nestedReference");
+ assertTrue(getLog().indexOf("Called with param: twoflower") > -1);
+ }
+
+ public void testPath() {
+ simpleTest("path");
+ }
+
+ public void testPathAndList() {
+ simpleTest("pathAndList");
+ }
+
+ private void simpleTest(String target) {
+ executeTarget(target);
+ int last = -1;
+ for (int i = 1; i < 4; i++) {
+ int thisIdx = getLog().indexOf("Called with param: " + i);
+ assertTrue(thisIdx > last);
+ last = thisIdx;
+ }
+ }
+}