aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/FailTest.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/FailTest.java')
-rw-r--r--framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/FailTest.java210
1 files changed, 210 insertions, 0 deletions
diff --git a/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/FailTest.java b/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/FailTest.java
new file mode 100644
index 00000000..8883558d
--- /dev/null
+++ b/framework/src/ant/apache-ant-1.9.6/src/tests/junit/org/apache/tools/ant/taskdefs/FailTest.java
@@ -0,0 +1,210 @@
+/*
+ * 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.taskdefs;
+
+import org.apache.tools.ant.BuildException;
+import org.apache.tools.ant.BuildFileRule;
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.fail;
+
+/**
+ */
+public class FailTest {
+
+ @Rule
+ public final BuildFileRule buildRule = new BuildFileRule();
+
+ @Before
+ public void setUp() {
+ buildRule.configureProject("src/etc/testcases/taskdefs/fail.xml");
+ }
+
+ @Test
+ public void test1() {
+ try {
+ buildRule.executeTarget("test1");
+ fail("it is required to fail :-)") ;
+ } catch (BuildException ex) {
+ assertEquals("No message", ex.getMessage());
+ }
+ }
+
+ @Test
+ public void test2() {
+ try {
+ buildRule.executeTarget("test2");
+ fail("it is required to fail :-)") ;
+ } catch (BuildException ex) {
+ assertEquals("test2", ex.getMessage());
+ }
+ }
+
+ @Test
+ public void testText() {
+ try {
+ buildRule.executeTarget("testText");
+ fail("it is required to fail :-)") ;
+ } catch (BuildException ex) {
+ assertEquals("testText", ex.getMessage());
+ }
+ }
+
+ @Test
+ public void testIf() {
+ buildRule.executeTarget("testIf");
+ buildRule.getProject().setProperty("foo", "");
+ try {
+ buildRule.executeTarget("testIf");
+ fail("testIf must fail if foo has been set") ;
+ } catch (BuildException ex) {
+ //TODO assert result
+ }
+ }
+
+ @Test
+ public void testUnless() {
+ try {
+ buildRule.executeTarget("testUnless");
+ fail("testUnless must fail unless foo has been set") ;
+ } catch (BuildException ex) {
+ //TODO assert rules
+ }
+ buildRule.getProject().setProperty("foo", "");
+ buildRule.executeTarget("testUnless");
+
+ }
+
+ /**
+ * see that the different combinations work, and
+ * that the autogenerated text contains information
+ * about which condition was not met
+ */
+ @Test
+ public void testIfAndUnless() {
+ //neither
+ buildRule.executeTarget("testIfAndUnless");
+ buildRule.getProject().setProperty("if", "");
+ try {
+ buildRule.executeTarget("testIfAndUnless");
+ fail("expect fail on defined(if)") ;
+ } catch (BuildException ex) {
+ assertEquals("if=if and unless=unless", ex.getMessage());
+ }
+ buildRule.getProject().setProperty("unless", "");
+ //this call should succeed as unless overrides if
+ buildRule.executeTarget("testIfAndUnless");
+ }
+ /**
+ * see that the different combinations work, and
+ * that the autogenerated text contains information
+ * about which condition was not met
+ */
+ @Test
+ public void testIfAndUnless2() {
+ buildRule.getProject().setProperty("unless", "");
+ buildRule.executeTarget("testIfAndUnless");
+ }
+
+ @Test
+ public void testNested1() {
+ try {
+ buildRule.executeTarget("testNested1");
+ fail("it is required to fail :-)") ;
+ } catch (BuildException ex) {
+ assertEquals("condition satisfied", ex.getMessage());
+ }
+ }
+
+ @Test
+ public void testNested2() {
+ buildRule.executeTarget("testNested2");
+ }
+
+ @Test
+ public void testNested3() {
+ try {
+ buildRule.executeTarget("testNested3");
+ fail("it is required to fail :-)") ;
+ } catch (BuildException ex) {
+ assertEquals("testNested3", ex.getMessage());
+ }
+ }
+
+ @Test
+ public void testNested4() {
+ String specificMessage = "Nested conditions "
+ + "not permitted in conjunction with if/unless attributes";
+
+ char[] c = {'a', 'b', 'c'};
+ StringBuffer target = new StringBuffer("testNested4x");
+
+ for (int i = 0; i < c.length; i++) {
+ target.setCharAt(target.length() - 1, c[i]);
+ try {
+ buildRule.executeTarget(target.toString());
+ fail("it is required to fail :-)") ;
+ } catch (BuildException ex) {
+ assertEquals(specificMessage, ex.getMessage());
+ }
+ }
+ }
+
+ @Test
+ public void testNested5() {
+ try {
+ buildRule.executeTarget("testNested5");
+ fail("it is required to fail :-)") ;
+ } catch (BuildException ex) {
+ assertEquals("Only one nested condition is allowed.", ex.getMessage());
+ }
+ }
+
+ @Test
+ public void testNested6() {
+ try {
+ buildRule.executeTarget("testNested6");
+ fail("it is required to fail :-)") ;
+ } catch (BuildException ex) {
+ assertEquals("testNested6\ntestNested6\ntestNested6", ex.getMessage());
+ }
+ }
+
+ @Test
+ public void testNested7() {
+ String specificMessage = "A single nested condition is required.";
+
+ char[] c = {'a', 'b'};
+ StringBuffer target = new StringBuffer("testNested7x");
+
+ for (int i = 0; i < c.length; i++) {
+ target.setCharAt(target.length() - 1, c[i]);
+ try {
+ buildRule.executeTarget(target.toString());
+ fail("it is required to fail :-)") ;
+ } catch (BuildException ex) {
+ assertEquals(specificMessage, ex.getMessage());
+ }
+ }
+ }
+
+}