Browse Source

parseBoolean utility

tags/PRE_ANDY
wisberg 19 years ago
parent
commit
be5b8333d3

+ 46
- 0
testing-util/src/org/aspectj/testing/util/TestUtil.java View File

return path.toString(); return path.toString();
} }
/**
* @param s the String to parse for [on|off|true|false]
* @throws IllegalArgumentException if input is bad
**/
public static boolean parseBoolean(String input) {
return parseBoolean(input, true);
}
/**
* @param s the String to parse for [on|off|true|false]
* @param iaxOnError if true and input is bad, throw
* IllegalArgumentException
* @return true if input is true, false otherwise
* @throws IllegalArgumentException if iaxOnError and input is bad
*/
public static boolean parseBoolean(final String input, boolean iaxOnError) {
final String syntax = ": [on|off|true|false]";
if (null == input) {
return false;
}
String lc = input.trim().toLowerCase();
boolean result = false;
boolean valid = false;
switch (lc.length()) {
case 2:
if (valid = "on".equals(lc)) {
result = true;
}
break;
case 3:
valid = "off".equals(lc);
break;
case 4:
if (valid = "true".equals(lc)) {
result = true;
}
break;
case 5:
valid = "false".equals(lc);
break;
}
if (iaxOnError && !valid) {
throw new IllegalArgumentException(input + syntax);
}
return result;
}


public static File aspectjrtJarFile() { public static File aspectjrtJarFile() {
return (File) LIB_ENTRIES.get(ASPECTJRT_KEY + ".file"); return (File) LIB_ENTRIES.get(ASPECTJRT_KEY + ".file");

+ 34
- 0
testing-util/testsrc/org/aspectj/testingutil/TestUtilTest.java View File

assertTrue(!TestUtil.sameFiles(holder, expectedBaseDir, actualBaseDir, filename)); assertTrue(!TestUtil.sameFiles(holder, expectedBaseDir, actualBaseDir, filename));
} }


public void testParseBoolean() {
{
String[] trues = {"true", "TRUE", "on", "ON" };
for (int i = 0; i < trues.length; i++) {
assertTrue(trues[i], TestUtil.parseBoolean(trues[i]));
}
}
{
String[] falses = {"false", "FALSE", "off", "off" };
for (int i = 0; i < falses.length; i++) {
assertTrue(falses[i], !TestUtil.parseBoolean(falses[i]));
}
}
String[] errors = {"fals", "tru", "T", "on of" };
boolean fail = false;
final int MAX = errors.length-1;
for (int i = 0; i <= MAX; i++) {
try {
TestUtil.parseBoolean(errors[i], fail);
assertTrue("no exception: " + errors[i], !fail);
} catch (IllegalArgumentException e) {
assertTrue("exception: " + errors[i], fail);
String m = e.getMessage();
if (-1 == m.indexOf(errors[i])) {
fail(errors[i] + " not in " + m);
}
}
if ((i == MAX) && !fail) {
i = -1;
fail = true;
}
}
}
public void testFileCompareClass() throws IOException { public void testFileCompareClass() throws IOException {
if (!TestUtil.ClassLineator.haveDisassembler()) { if (!TestUtil.ClassLineator.haveDisassembler()) {
System.err.println("skipping testFileCompareClass - no disassembler on classpath"); System.err.println("skipping testFileCompareClass - no disassembler on classpath");

+ 4
- 3
testing/src/org/aspectj/testing/harness/bridge/JavaRun.java View File

import org.aspectj.testing.run.IRunStatus; import org.aspectj.testing.run.IRunStatus;
import org.aspectj.testing.run.WrappedRunIterator; import org.aspectj.testing.run.WrappedRunIterator;
import org.aspectj.testing.util.TestClassLoader; import org.aspectj.testing.util.TestClassLoader;
import org.aspectj.testing.util.TestUtil;
import org.aspectj.testing.xml.SoftMessage; import org.aspectj.testing.xml.SoftMessage;
import org.aspectj.testing.xml.XMLWriter; import org.aspectj.testing.xml.XMLWriter;
import org.aspectj.util.FileUtil; import org.aspectj.util.FileUtil;
} }
public void setLTW(String ltw) { public void setLTW(String ltw) {
useLTW = Boolean.parseBoolean(ltw);
useLTW = TestUtil.parseBoolean(ltw);
} }
public void setAspectpath(String path) { public void setAspectpath(String path) {
this.classpath = XMLWriter.unflattenList(path); this.classpath = XMLWriter.unflattenList(path);
} }
public void setErrStreamIsError(String errStreamIsError) { public void setErrStreamIsError(String errStreamIsError) {
this.errStreamIsError = Boolean.parseBoolean(errStreamIsError);
this.errStreamIsError = TestUtil.parseBoolean(errStreamIsError);
} }


public void setOutStreamIsError(String outStreamIsError) { public void setOutStreamIsError(String outStreamIsError) {
this.outStreamIsError = Boolean.parseBoolean(outStreamIsError);
this.outStreamIsError = TestUtil.parseBoolean(outStreamIsError);
} }


/** @param skip if true, then do not set up Tester */ /** @param skip if true, then do not set up Tester */

Loading…
Cancel
Save