Improve integration testing framework, and check that lines are absent
git-svn-id: https://svn.apache.org/repos/asf/creadur/whisker/trunk@1408053 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/apache-whisker-plugin4maven/src/it/example-copyright-notices/verify.groovy b/apache-whisker-plugin4maven/src/it/example-copyright-notices/verify.groovy
index 6098a08..c913c6f 100644
--- a/apache-whisker-plugin4maven/src/it/example-copyright-notices/verify.groovy
+++ b/apache-whisker-plugin4maven/src/it/example-copyright-notices/verify.groovy
@@ -37,10 +37,14 @@
license.expectThat(aLineContainsMIT())
license.expectThat(aLineContainsResource("mit.txt"))
license.expectThat(aLineContainsAL2())
+ license.expectThat(noLineContains("Copyright (c) 9595 The Example Project"))
+ license.expectThat(noLineContains("This product includes software developed at"))
+ license.expectThat(noLineContains("The Example Foundation (http://example.org/)."))
//license.expectThat(aLineContainsResource("apache.txt"))
notice = noticeIn(basedir)
notice.expectThat(aLineContains("Copyright (c) 9595 The Example Project"))
notice.expectThat(aLineContains("This product includes software developed at"))
notice.expectThat(aLineContains("The Example Foundation (http://example.org/)."))
+ notice.expectThat(noLineContains("Copyright (c) 2525 The Example Project"))
return aggregate(license.failures(), notice.failures())
}
\ No newline at end of file
diff --git a/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/Helpers.java b/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/Helpers.java
index 4e05f32..824aeac 100644
--- a/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/Helpers.java
+++ b/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/Helpers.java
@@ -72,6 +72,10 @@
"COMMON DEVELOPMENT AND DISTRIBUTION LICENSE Version 1.0 (CDDL-1.0)");
}
+ public static Check noLineContains(String value) {
+ return new NoLineContainsCheck(value);
+ }
+
public static Check aLineContains(String value) {
return new AnyLineContainsCheck(value);
}
diff --git a/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/NoLineContainsCheck.java b/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/NoLineContainsCheck.java
new file mode 100644
index 0000000..1a75baa
--- /dev/null
+++ b/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/NoLineContainsCheck.java
@@ -0,0 +1,51 @@
+/**
+ * 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.creadur.whisker.it;
+
+import static org.apache.creadur.whisker.it.Not.*;
+
+public class NoLineContainsCheck implements Check {
+
+ final String value;
+
+ Latch latch = Latch.UP;
+
+ public static final String WARNING = "Text contains incorrect phrase: ";
+
+ public NoLineContainsCheck(String value) {
+ super();
+ this.value = value;
+ }
+
+ public void check(String line) {
+ if (isNotNull(line) && line.contains(value)) {
+ latch = latch.push();
+ }
+ }
+
+ public boolean hasPassed() {
+ return latch == Latch.UP;
+ }
+
+ public void report(Results result) {
+ if (not(hasPassed())) {
+ result.fail(WARNING + value);
+ }
+ }
+}
diff --git a/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/TestNoLineContainsCheck.java b/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/TestNoLineContainsCheck.java
new file mode 100644
index 0000000..87c552d
--- /dev/null
+++ b/apache-whisker-plugin4maven/src/test/java/org/apache/creadur/whisker/it/TestNoLineContainsCheck.java
@@ -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.creadur.whisker.it;
+
+import junit.framework.TestCase;
+
+public class TestNoLineContainsCheck extends TestCase {
+
+ private static final String CHECKED_FOR_VALUE = "some value";
+
+ NoLineContainsCheck subject;
+ Results results;
+
+ public void setUp() {
+ subject = new NoLineContainsCheck(CHECKED_FOR_VALUE);
+ results = new Results();
+ }
+
+ public void testNullLine() {
+ subject.check(null);
+ assertTrue(subject.hasPassed());
+ subject.report(results);
+ assertFalse(results.hasFailed());
+ assertNull(results.collate());
+ }
+
+ public void testDifferentLine() {
+ subject.check("something different");
+ assertTrue(subject.hasPassed());
+ subject.report(results);
+ assertFalse(results.hasFailed());
+ assertNull(results.collate());
+ }
+
+ public void testSameLine() {
+ subject.check(CHECKED_FOR_VALUE);
+ assertFalse(subject.hasPassed());
+ subject.report(results);
+ assertTrue(results.hasFailed());
+ assertTrue(results.collate().contains(NoLineContainsCheck.WARNING + CHECKED_FOR_VALUE));
+ }
+
+ public void testLineContainingText() {
+ subject.check("prefix " + CHECKED_FOR_VALUE + " suffix");
+ assertFalse(subject.hasPassed());
+ subject.report(results);
+ assertTrue(results.hasFailed());
+ assertTrue(results.collate().contains(NoLineContainsCheck.WARNING + CHECKED_FOR_VALUE));
+ }
+
+}