Browse Source

New task <input>

Submitted by:	Ulrich Schmidt <ulrich.schmidt@gmx.net>


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@270051 13f79535-47bb-0310-9956-ffa450edef68
master
Stefan Bodewig 23 years ago
parent
commit
f6db0835f7
8 changed files with 523 additions and 29 deletions
  1. +1
    -1
      WHATSNEW
  2. +102
    -0
      docs/manual/CoreTasks/input.html
  3. +33
    -27
      docs/manual/CoreTasks/overview.html
  4. +1
    -1
      docs/manual/coretasklist.html
  5. +55
    -0
      src/etc/testcases/taskdefs/input.xml
  6. +212
    -0
      src/main/org/apache/tools/ant/taskdefs/Input.java
  7. +1
    -0
      src/main/org/apache/tools/ant/taskdefs/defaults.properties
  8. +118
    -0
      src/testcases/org/apache/tools/ant/taskdefs/InputTest.java

+ 1
- 1
WHATSNEW View File

@@ -63,7 +63,7 @@ Other changes:
* Added support for specifying CVS_RSH in the <cvs/> task

* New tasks bzip2 and bunzip2 to pack and unpack files using the
BZip2 alogrithm, replaceregexp, checksum, translate, waitfor
BZip2 alogrithm, replaceregexp, checksum, translate, waitfor, input

* The attributes zipfile, jarfile, warfile and earfile (from the Zip,
Jar, War and Ear tasks) have been deprecated and superseded by a


+ 102
- 0
docs/manual/CoreTasks/input.html View File

@@ -0,0 +1,102 @@
<html>

<head>
<meta http-equiv="Content-Language" content="en-us">
<title>Ant User Manual</title>
</head>

<body>

<h2><a name="input">Input</a></h2>
<h3>Description</h3>
<p>Allows user interaction during the build process by displaying a message and
reading a line of input from the console (System.in). The user will need to press
the Return key.
</p>
<p>The message displayed can be set via the message attribute
or as character data nested into the element.</p>
<p>Optinonally a set of valid imput arguments can be defined via the validargs
attribute. Input task will require the user to reenter values until the entered
value matches one of the predefined.</p>
<p>Optionally a set of exit arguments can be defined via the exitargs attribute.
Input task will throw a BuildException with a customisable exit message if the
entered value matches one of the predefined.</p>
<p>Optionally a property can be created from the value entered by the user. This
property can then be used during the following build run. Input behaves according
to <a href="property.html">property task</a> which means that existing properties
cannot be overriden.</p>
<h3>Parameters</h3>
<table border="1" cellpadding="2" cellspacing="0">
<tr>
<td valign="top"><b>Attribute</b></td>
<td valign="top"><b>Description</b></td>
<td align="center" valign="top"><b>Required</b></td>
</tr>
<tr>
<td valign="top">message</td>
<td valign="top">the Message which gets displayed to the user during the build run.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">exitmessage</td>
<td valign="top">the exit message which gets displayed when exiting the build run.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">validargs</td>
<td valign="top">comma separated String containing valid input arguments. If set,
input task will reject any input not defined here and input task will
require the user to reenter arguments until the entered one matches one of the
predefined. Validargs are compared case sensitive. If you want 'a' and 'A' to
be accepted you will need to define both arguments within validargs.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">exitargs</td>
<td valign="top">comma separated String containing exit arguments. If set,
input task will throw a BuildException with a customisable exit message if the
entered value matches to one of the predefined. Exitargs are compared case
sensitive. If you want 'x' and 'X' to end the build run you will need to define
both arguments within exitargs.</td>
<td valign="top" align="center">No</td>
</tr>
<tr>
<td valign="top">addproperty</td>
<td valign="top">the name of a property to be created from input. Behaviour is equal
to <a href="property.html">property task</a> which means that existing properties
cannot be overriden.</td>
<td valign="top" align="center">No</td>
</tr>
</table>
<h3>Examples</h3>
<pre> &lt;input/&gt;</pre>
<p>Will pause the build run until return key is pressed.</p>
<pre> &lt;input&gt;Press Return key to continue...&lt;/input&gt;</pre>
<p>Will display the message &quot;Press Return key to continue...&quot; and pause
the build run until return key is pressed.</p>
<pre> &lt;input
message=&quot;Press Return key to continue...&quot;
/&gt;</pre>
<p>Will display the message &quot;Press Return key to continue...&quot; and pause
the build run until return key is pressed.</p>
<pre> &lt;input
message=&quot;All data is going to be deleted from DB continue (y/n)?&quot;
validargs=&quot;y,n&quot;
exitargs=&quot;n&quot;
exitmessage=&quot;Build abborted by user.&quot;
/&gt;</pre>
<p>Will display the message &quot;All data is going to be deleted from DB continue
(y/n)?&quot; and require 'y+retrun key' to continue build or 'n+return key'
to exit build with following message &quot;Build abborted by user.&quot;.</p>
<pre> &lt;input
message=&quot;Please enter db-username:&quot;
addproperty=&quot;db.user&quot;
/&gt;</pre>
<p>Will display the message &quot;Please enter db-username:&quot; and set the
property <code>db.user</code> to the value entered by the user.</p>

<hr>
<p align="center">Copyright &copy; 2000,2001 Apache Software Foundation. All rights
Reserved.</p>
</body>
</html>

+ 33
- 27
docs/manual/CoreTasks/overview.html View File

@@ -7,8 +7,8 @@

<body>
<h2>Overview of Ant core tasks</h2>
<p>Given the large number of tasks available to a build designer, it may be
difficult to get an overall view of what each task can do. The following
<p>Given the large number of tasks available to a build designer, it may be
difficult to get an overall view of what each task can do. The following
table provides a short description of each task and a link to the complete
documentation.</p>

@@ -28,37 +28,37 @@ documentation.</p>
<td><p>Call another target within the same build-file optionally specifying some
properties.</p></td>
</tr>
<tr valign="top">
<td><a href="antstructure.html">AntStructure</a></td>
<td><p>Generates a DTD for Ant buildfiles which contains information
about all tasks currently known to Ant.</p></td>
</tr>
<tr valign="top">
<td><a href="apply.html">Apply/<i>ExecOn</i></a></td>
<td><p>Executes a system command. When the <i>os</i> attribute is specified, then
the command is only executed when Ant is run on one of the specified operating
systems.</p></td>
</tr>
<tr valign="top">
<td><a href="available.html">Available</a></td>
<td><p>Sets a property if a resource is available at runtime. This resource can be a
file, a directory, a class in the classpath, or a JVM system resource.</p></td>
</tr>
<tr valign="top">
<td><a href="chmod.html">Chmod</a></td>
<td><p>Changes the permissions of a file or all files inside specified directories.
Right now it has effect only under Unix. The permissions are also UNIX style, like
<td><p>Changes the permissions of a file or all files inside specified directories.
Right now it has effect only under Unix. The permissions are also UNIX style, like
the argument for the chmod command.</p></td>
</tr>

<tr valign="top">
<td><a href="condition.html">Condition</a></td>
<td><p>Sets a property if a certain condition holds true - this is a
generalization of <a href="available.html">Available</a> and
generalization of <a href="available.html">Available</a> and
<a href="uptodate.html">Uptodate</a>.</p></td>
</tr>

@@ -79,20 +79,20 @@ file, a directory, a class in the classpath, or a JVM system resource.</p></td>

<tr valign="top">
<td><a href="cvs.html">Cvs</a></td>
<td><p>Handles packages/modules retrieved from a
<td><p>Handles packages/modules retrieved from a
<a href="http://www.cvshome.org/" target="_top">CVS</a> repository.</p></td>
</tr>

<tr valign="top">
<td><a href="cvspass.html">CVSPass</a></td>
<td><p>Adds entries to a .cvspass file. Adding entries to this file has the same
<td><p>Adds entries to a .cvspass file. Adding entries to this file has the same
affect as a cvs login command.</p></td>
</tr>

<tr valign="top">
<td><a href="delete.html">Delete</a></td>
<td><p>Deletes either a single file, all files in a specified directory
and its sub-directories, or a set of files specified by one or more
<td><p>Deletes either a single file, all files in a specified directory
and its sub-directories, or a set of files specified by one or more
<a href="../CoreTypes/fileset.html">FileSet</a>s.</p></td>
</tr>

@@ -165,6 +165,12 @@ through the Project commodity methods.</p></td>
<td><p>GZips a file.</p></td>
</tr>

<tr valign="top">
<td><a href="input.html">Input</a></td>
<td><p>Allows user interaction during the build process by displaying a
message and reading a line of input from the console.</p></td>
</tr>

<tr valign="top">
<td><a href="jar.html">Jar</a></td>
<td><p>Jars a set of files.</p></td>
@@ -184,7 +190,7 @@ specified.</p></td>
<tr valign="top">
<td><a href="javadoc.html">Javadoc/<i>Javadoc2</i></a></td>
<td><p>Generates code documentation using the javadoc tool.</p>
<p><i>The Javadoc2 task is deprecated. Use the Javadoc task
<p><i>The Javadoc2 task is deprecated. Use the Javadoc task
instead.</i></p></td>
</tr>

@@ -210,7 +216,7 @@ specified.</p></td>
<td><p>Parallel is a container task - it can contain other Ant tasks. Each nested
task within the parallel task will be executed in its own thread. </p> </td>
</tr>
<tr valign="top">
<td><a href="patch.html">Patch</a></td>
<td><p>Applies a diff file to originals.</p></td>
@@ -241,7 +247,7 @@ specified.</p></td>

<tr valign="top">
<td><a href="replace.html">Replace</a></td>
<td><p>Replace is a directory based task for replacing the occurrence of a given string with another string
<td><p>Replace is a directory based task for replacing the occurrence of a given string with another string
in selected file.</p></td>
</tr>

@@ -252,12 +258,12 @@ specified.</p></td>

<tr valign="top">
<td><a href="sequential.html">Sequential</a></td>
<td><p>Sequential is a container task - it can contain other Ant tasks. The nested
tasks are simply executed in sequence. Sequential's primary use is to support
the sequential execution of a subset of tasks within the
<td><p>Sequential is a container task - it can contain other Ant tasks. The nested
tasks are simply executed in sequence. Sequential's primary use is to support
the sequential execution of a subset of tasks within the
<a href="parallel.html">parallel</a> task</p></td>
</tr>
<tr valign="top">
<td><a href="signjar.html">SignJar</a></td>
<td><p>Signs a jar or zip file with the javasign command line tool.</p></td>
@@ -265,14 +271,14 @@ specified.</p></td>

<tr valign="top">
<td><a href="sleep.html">Sleep</a></td>
<td><p> A task for sleeping a short period of time, useful when a build or
<td><p> A task for sleeping a short period of time, useful when a build or
deployment process requires an interval between tasks.</p></td>
</tr>

<tr valign="top">
<td><a href="sql.html">Sql</a></td>
<td><p>Executes a series of SQL statements via JDBC to a database. Statements
can either be read in from a text file using the <i>src</i> attribute or from
<td><p>Executes a series of SQL statements via JDBC to a database. Statements
can either be read in from a text file using the <i>src</i> attribute or from
between the enclosing SQL tags.</p></td>
</tr>

@@ -300,8 +306,8 @@ specified.</p></td>

<tr valign="top">
<td><a href="tstamp.html">TStamp</a></td>
<td><p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and
<code>TODAY</code> properties in the current project based on
<td><p>Sets the <code>DSTAMP</code>, <code>TSTAMP</code>, and
<code>TODAY</code> properties in the current project based on
the current date and time.</p></td>
</tr>

@@ -340,8 +346,8 @@ specified.</p></td>
<tr valign="top">
<td><a href="war.html">War</a></td>
<td><p>An extension of the <a href="jar.html">Jar</a> task with special
treatment for files that should end up in the <code>WEB-INF/lib</code>,
<code>WEB-INF/classes</code> or <code>WEB-INF</code> directories of the
treatment for files that should end up in the <code>WEB-INF/lib</code>,
<code>WEB-INF/classes</code> or <code>WEB-INF</code> directories of the
Web Application Archive.</p></td>
</tr>



+ 1
- 1
docs/manual/coretasklist.html View File

@@ -51,6 +51,7 @@
<a href="CoreTasks/get.html">Get</a><br>
<a href="CoreTasks/unpack.html">GUnzip</a><br>
<a href="CoreTasks/pack.html">GZip</a><br>
<a href="CoreTasks/input.html">Input</a><br>
<a href="CoreTasks/jar.html">Jar</a><br>
<a href="CoreTasks/java.html">Java</a><br>
<a href="CoreTasks/javac.html">Javac</a><br>
@@ -82,7 +83,6 @@
<a href="CoreTasks/unzip.html">Unzip</a><br>
<a href="CoreTasks/uptodate.html">Uptodate</a><br>
<a href="CoreTasks/waitfor.html">Waitfor</a><br>
<a href="CoreTasks/waitfor.html">Waitfor</a><br>
<a href="CoreTasks/war.html">War</a><br>
<a href="CoreTasks/zip.html">Zip</a><br>
</body>


+ 55
- 0
src/etc/testcases/taskdefs/input.xml View File

@@ -0,0 +1,55 @@
<?xml version="1.0"?>

<project name="input-test" basedir="." default="test1">

<target name="test1">
<input testinput="test">Press Return key to continue...</input>
</target>

<target name="test2">
<input testinput="test"
message="Press Return key to continue..."
/>
</target>

<target name="test3">
<input testinput="test"
message="All data is going to be deleted from DB continue (y/n)?"
validargs="y,n"
exitargs="n"
/>
</target>

<target name="test4">
<input testinput="n"
message="All data is going to be deleted from DB continue (y/n)?"
validargs="y,n"
exitargs="n"
/>
</target>

<target name="test5">
<input testinput="y"
message="All data is going to be deleted from DB continue (y/n)?"
validargs="y,n"
exitargs="n"
/>
</target>

<target name="test6">
<input testinput="scott"
message="Please enter db-username:"
addproperty="db.user"
/>
</target>

<target name="test7">
<input testinput="R"
message="Press 'R' to make you very rich!"
validargs="R"
exitargs="R"
exitmessage="Don't trust if you don't have the source ;-)"
/>
</target>
</project>

+ 212
- 0
src/main/org/apache/tools/ant/taskdefs/Input.java View File

@@ -0,0 +1,212 @@
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Ant", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/

package org.apache.tools.ant.taskdefs;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokenizer;
import java.util.Vector;
import org.apache.tools.ant.*;


/**
* Ant task to read input line from console.
*
* @author Ulrich Schmidt <usch@usch.net>
*/
public class Input extends Task {
private String validargs = null;
private String exitargs = null;
private String exitmessage = "Build abborted.";
private String message = "";
private String addproperty = null;
private String input = null;

/**
* Defines valid input parameters as comma separated String. If set, input
* task will reject any input not defined as accepted and requires the user
* to reenter it. Validargs are case sensitive. If you want 'a' and 'A' to
* be accepted you need to define both values as accepted arguments.
*
* @param validargs A comma separated String defining valid input args.
*/
public void setValidargs (String validargs) {
this.validargs = validargs;
}

/**
* Defines the name of a property to be created from input. Behaviour is
* according to property task which means that existing properties
* cannot be overriden.
*
* @param exitargs Name for the property to be created from input
*/
public void setAddproperty (String addproperty) {
this.addproperty = addproperty;
}

/*
* Defines exit condition parameters as comma separated String. If input
* matches one of these input task will end build by throwing a
* BuildException. ExitArgs are case sensitive. If you want the build to
* end on 'x' and 'X' you need to define both values as exit arguments.
*
* @param exitargs A comma separated String defining exit arguments.
*/
public void setExitargs (String exitargs) {
this.exitargs = exitargs;
}

/**
* Sets the ExitMessage which gets displayed when exiting the build run.
* Default is 'Build abborted.'
* @param exitmessage The exit message to be displayed.
*/
public void setExitmessage (String exitmessage) {
this.exitmessage = exitmessage;
}

/**
* Sets the Message which gets displayed to the user during the build run.
* @param message The message to be displayed.
*/
public void setMessage (String message) {
this.message = message;
}

/**
* Sets surrogate input to allow automated testing.
* @param input The surrogate input used for testing.
*/
public void setTestinput (String testinput) {
this.input = testinput;
}

/**
* No arg constructor.
*/
public Input () {
}

/**
* Actual test method executed by jakarta-ant.
* @exception BuildException
*/
public void execute () throws BuildException {
Vector accept = null;
if (validargs != null) {
accept = new Vector();
StringTokenizer stok = new StringTokenizer(validargs, ",", false);
while (stok.hasMoreTokens()) {
accept.addElement(stok.nextToken());
}
}
Vector exit = null;
if (exitargs != null) {
exit = new Vector();
StringTokenizer stok = new StringTokenizer(exitargs, ",", false);
while (stok.hasMoreTokens()) {
exit.addElement(stok.nextToken());
}
}
log(message, Project.MSG_WARN);
if (input == null) {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
input = in.readLine();
if (accept != null) {
while (!accept.contains(input)) {
log(message, Project.MSG_WARN);
input = in.readLine();
}
}
} catch (IOException e) {
throw new BuildException("Failed to read input from Console.", e);
}
}
// not quite the original intention of this task but for the sake
// of testing ;-)
else {
if (accept != null && (!accept.contains(input))) {
throw new BuildException("Invalid input please reenter.");
}
}
// adopted from org.apache.tools.ant.taskdefs.Property
if (addproperty != null) {
if (project.getProperty(addproperty) == null) {
project.setProperty(addproperty, input);
}
else {
log("Override ignored for " + addproperty, Project.MSG_VERBOSE);
}
}
if (exit != null && exit.contains(input)) {
throw new BuildException(exitmessage);
}
}

// copied n' pasted from org.apache.tools.ant.taskdefs.Exit
/**
* Set a multiline message.
*/
public void addText(String msg) {
message +=
ProjectHelper.replaceProperties(project, msg, project.getProperties());
}
}




+ 1
- 0
src/main/org/apache/tools/ant/taskdefs/defaults.properties View File

@@ -57,6 +57,7 @@ bzip2=org.apache.tools.ant.taskdefs.BZip2
bunzip2=org.apache.tools.ant.taskdefs.BUnzip2
checksum=org.apache.tools.ant.taskdefs.Checksum
waitfor=org.apache.tools.ant.taskdefs.WaitFor
input=org.apache.tools.ant.taskdefs.Input

# optional tasks
script=org.apache.tools.ant.taskdefs.optional.Script


+ 118
- 0
src/testcases/org/apache/tools/ant/taskdefs/InputTest.java View File

@@ -0,0 +1,118 @@
/*
* The Apache Software License, Version 1.1
*
* Copyright (c) 2001 The Apache Software Foundation. All rights
* reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
*
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
*
* 3. The end-user documentation included with the redistribution, if
* any, must include the following acknowlegement:
* "This product includes software developed by the
* Apache Software Foundation (http://www.apache.org/)."
* Alternately, this acknowlegement may appear in the software itself,
* if and wherever such third-party acknowlegements normally appear.
*
* 4. The names "The Jakarta Project", "Ant", and "Apache Software
* Foundation" must not be used to endorse or promote products derived
* from this software without prior written permission. For written
* permission, please contact apache@apache.org.
*
* 5. Products derived from this software may not be called "Apache"
* nor may "Apache" appear in their names without prior written
* permission of the Apache Group.
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
* DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
* ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
* USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
* OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
* ====================================================================
*
* This software consists of voluntary contributions made by many
* individuals on behalf of the Apache Software Foundation. For more
* information on the Apache Software Foundation, please see
* <http://www.apache.org/>.
*/

package org.apache.tools.ant.taskdefs;
import org.apache.tools.ant.BuildFileTest;

/**
* @author Ulrich Schmidt <usch@usch.net>
*/
public class InputTest extends BuildFileTest {

public InputTest(String name) {
super(name);
}

public void setUp() {
configureProject("src/etc/testcases/taskdefs/input.xml");
}

public void test1() {
expectLog("test1", "Press Return key to continue...");
}

public void test2() {
expectLog("test2", "Press Return key to continue...");
}

public void test3() {
String log = "All data is going to be deleted from DB continue (y/n)?";
String message = "Invalid input please reenter.";
try {
executeTarget("test3");
} catch (org.apache.tools.ant.BuildException e) {
String realLog = getLog();
assertEquals(log, realLog);
assertEquals(message, e.getMessage());
}
}

public void test4() {
String log = "All data is going to be deleted from DB continue (y/n)?";
String message = "Build abborted.";
try {
executeTarget("test4");
} catch (org.apache.tools.ant.BuildException e) {
String realLog = getLog();
assertEquals(log, realLog);
assertEquals(message, e.getMessage());
}
}

public void test5() {
expectLog("test5",
"All data is going to be deleted from DB continue (y/n)?");
}

public void test6() {
expectLog("test6",
"Please enter db-username:");
assertEquals("scott", project.getProperty("db.user"));
}

public void test7() {
expectBuildException("test7",
"Don't trust if you don't have the source ;-)");
}
}

Loading…
Cancel
Save