You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by di...@apache.org on 2005/11/21 01:47:32 UTC
svn commit: r345796 - in
/jakarta/commons/proper/jelly/trunk/jelly-tags/junit:
src/java/org/apache/commons/jelly/tags/junit/
src/test/org/apache/commons/jelly/tags/junit/ xdocs/
Author: dion
Date: Sun Nov 20 16:47:23 2005
New Revision: 345796
URL: http://svn.apache.org/viewcvs?rev=345796&view=rev
Log:
Add assertFileContains tag
Added:
jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/AssertFileContainsTag.java
Modified:
jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/JUnitTagLibrary.java
jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/test/org/apache/commons/jelly/tags/junit/suite.jelly
jakarta/commons/proper/jelly/trunk/jelly-tags/junit/xdocs/changes.xml
Added: jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/AssertFileContainsTag.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/AssertFileContainsTag.java?rev=345796&view=auto
==============================================================================
--- jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/AssertFileContainsTag.java (added)
+++ jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/AssertFileContainsTag.java Sun Nov 20 16:47:23 2005
@@ -0,0 +1,124 @@
+/*
+ * Copyright 2002,2004 The Apache Software Foundation.
+ *
+ * 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 org.apache.commons.jelly.tags.junit;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileReader;
+import java.io.IOException;
+
+import org.apache.commons.jelly.MissingAttributeException;
+import org.apache.commons.jelly.JellyTagException;
+import org.apache.commons.jelly.XMLOutput;
+
+/**
+ * Checks that a file exists, and if not, then the test will fail.
+ *
+ * @author <a href="mailto:dion@apache.org">Dion Gillard</a>
+ * @version $Revision: 344024 $
+ */
+public class AssertFileContainsTag extends AssertTagSupport
+{
+ /** the file to check */
+ private File file;
+
+ /** content to match */
+ private String match;
+
+ /**
+ * Do the tag functionality: check the file exists.
+ * @param output a place to write text output
+ * @throws JellyTagException if the file doesn't exist.
+ */
+ public void doTag(XMLOutput output) throws JellyTagException
+ {
+ if (match == null)
+ {
+ throw new MissingAttributeException("match");
+ }
+ String message = getBodyText();
+ if (message == null || message.length() == 0)
+ {
+ message = "File does not contain '" + match + "'";
+ }
+
+
+ if (file == null)
+ {
+ throw new MissingAttributeException("file");
+ }
+ else
+ {
+ if (file.exists() && file.canRead())
+ {
+ try
+ {
+ BufferedReader br = new BufferedReader(new FileReader(file));
+ String line;
+ boolean found = false;
+ while ((line = br.readLine()) != null)
+ {
+ if (line.indexOf(match) != -1)
+ {
+ found = true;
+ break;
+ }
+ }
+ br.close();
+ if (!found)
+ {
+ fail(message);
+ }
+ }
+ catch (IOException fnfe)
+ {
+ throw new JellyTagException(fnfe);
+ }
+ }
+ else
+ {
+ try
+ {
+ throw new JellyTagException("File '" + file.getCanonicalPath()
+ + "' can't be read.");
+ }
+ catch (IOException e)
+ {
+ throw new JellyTagException(e);
+ }
+ }
+ }
+ }
+
+ /**
+ * The file to be tested. If this file exists, the test will pass.
+ * @param aFile the file to test.
+ */
+ public void setFile(File aFile)
+ {
+ file = aFile;
+ }
+
+ /**
+ * The content to be checked for. If this text matches some part
+ * of the given file, the test will pass.
+ */
+ public void setMatch(String aString)
+ {
+ match = aString;
+ }
+}
Modified: jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/JUnitTagLibrary.java
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/JUnitTagLibrary.java?rev=345796&r1=345795&r2=345796&view=diff
==============================================================================
--- jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/JUnitTagLibrary.java (original)
+++ jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/java/org/apache/commons/jelly/tags/junit/JUnitTagLibrary.java Sun Nov 20 16:47:23 2005
@@ -42,6 +42,7 @@
public JUnitTagLibrary() {
registerTag("assert", AssertTag.class);
registerTag("assertEquals", AssertEqualsTag.class);
+ registerTag("assertFileContains", AssertFileContainsTag.class);
registerTag("assertFileExists", AssertFileExistsTag.class);
registerTag("assertFileNotFound", AssertFileNotFoundTag.class);
registerTag("assertThrows", AssertThrowsTag.class);
Modified: jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/test/org/apache/commons/jelly/tags/junit/suite.jelly
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/test/org/apache/commons/jelly/tags/junit/suite.jelly?rev=345796&r1=345795&r2=345796&view=diff
==============================================================================
--- jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/test/org/apache/commons/jelly/tags/junit/suite.jelly (original)
+++ jakarta/commons/proper/jelly/trunk/jelly-tags/junit/src/test/org/apache/commons/jelly/tags/junit/suite.jelly Sun Nov 20 16:47:23 2005
@@ -146,4 +146,16 @@
</test:assertThrows>
<test:assert test="${ex != null}">No exception thrown for file that exists</test:assert>
</test:case>
+
+ <test:case name="assertFileContains">
+ <!-- check that the pom contains a name element -->
+ <test:assertFileContains file="${basedir}/project.xml" match="<name>commons-jelly-tags-junit">Couldn't find name in pom</test:assertFileContains>
+
+ <test:assertThrows var="ex" expected="org.apache.commons.jelly.tags.junit.JellyAssertionFailedError">
+ <test:assertFileContains file="${basedir}/project.xml" match="DUMMY">Bad contents</test:assertFileContains>
+ </test:assertThrows>
+
+ message=${ex.message}
+ <test:assert test="${ex != null and ex.message != null}"/>
+ </test:case>
</test:suite>
Modified: jakarta/commons/proper/jelly/trunk/jelly-tags/junit/xdocs/changes.xml
URL: http://svn.apache.org/viewcvs/jakarta/commons/proper/jelly/trunk/jelly-tags/junit/xdocs/changes.xml?rev=345796&r1=345795&r2=345796&view=diff
==============================================================================
--- jakarta/commons/proper/jelly/trunk/jelly-tags/junit/xdocs/changes.xml (original)
+++ jakarta/commons/proper/jelly/trunk/jelly-tags/junit/xdocs/changes.xml Sun Nov 20 16:47:23 2005
@@ -25,6 +25,7 @@
</properties>
<body>
<release version="1.0.1-SNAPSHOT" date="in SVN">
+ <action dev="dion" type="add">Added assertFileContains tag</action>
<action dev="dion" type="add">Added assertFileNotFound tag</action>
<action dev="dion" type="add">Added assertFileExists tag</action>
</release>
---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org