Move generic command line API to test package

This commit is contained in:
Jeremy Lakeman 2014-02-24 09:57:51 +10:30
parent 20494a90d5
commit dfda3f7a74
3 changed files with 60 additions and 62 deletions

View File

@ -632,62 +632,4 @@ public class ServalDCommand
sender.toHex(), recipient.toHex(),
"" + offset);
}
public static int printCommand(final String fieldDelim, final String rowDelim, String... args){
return rawCommand(new IJniResults() {
int columns =-1;
int column =-1;
@Override
public void startResultSet(int columns) {
this.columns=columns;
}
@Override
public void setColumnName(int column, String name) {
System.out.print(name + fieldDelim);
if (column>=0 && column+1==columns)
System.out.println();
}
private void eol(){
if (columns==-1 || ++column==columns){
System.out.print(rowDelim);
column=-1;
}
}
@Override
public void putString(String value) {
System.out.print(value);
eol();
}
@Override
public void putBlob(byte[] value) {
System.out.print(new String(value));
eol();
}
@Override
public void putLong(long value) {
System.out.print(value);
eol();
}
@Override
public void putDouble(double value) {
System.out.print(value);
eol();
}
@Override
public void totalRowCount(int rows) {
}
}, args);
}
public static void main(String... args)
{
System.exit(printCommand(":","\n",args));
}
}

View File

@ -1,11 +1,67 @@
package org.servalproject.test;
import org.servalproject.servaldna.IJniResults;
import org.servalproject.servaldna.ServalDCommand;
import org.servalproject.servaldna.ServalDFailureException;
import java.util.Arrays;
class ServalDTests
{
public static int printCommand(final String fieldDelim, final String rowDelim, String... args) throws ServalDFailureException {
return ServalDCommand.command(new IJniResults() {
int columns = -1;
int column = -1;
@Override
public void startResultSet(int columns) {
this.columns = columns;
}
@Override
public void setColumnName(int column, String name) {
System.out.print(name + fieldDelim);
if (column >= 0 && column + 1 == columns)
System.out.println();
}
private void eol() {
if (columns == -1 || ++column == columns) {
System.out.print(rowDelim);
column = -1;
}
}
@Override
public void putString(String value) {
System.out.print(value);
eol();
}
@Override
public void putBlob(byte[] value) {
System.out.print(new String(value));
eol();
}
@Override
public void putLong(long value) {
System.out.print(value);
eol();
}
@Override
public void putDouble(double value) {
System.out.print(value);
eol();
}
@Override
public void totalRowCount(int rows) {
}
}, args);
}
public static void main(String... args)
{
try {
@ -21,7 +77,7 @@ class ServalDTests
}
while(repeatCount>0){
ServalDCommand.printCommand(""," ",args);
printCommand("", " ", args);
System.out.println();
repeatCount--;
}

View File

@ -49,8 +49,8 @@ assert_echo_works() {
doc_Echo="Serval JNI echo Hello world"
test_Echo() {
executeOk java "-Djava.library.path=$LD_LIBRARY_PATH" -classpath "$PWD/classes" org.servalproject.servaldna.ServalDCommand 'echo' '-e' 'Hello,\ttab' 'world\0!'
assertStdoutIs -e 'Hello,\ttab\nworld\0!\n'
executeOk java "-Djava.library.path=$LD_LIBRARY_PATH" -classpath "$PWD/classes" org.servalproject.test.ServalDTests 'echo' '-e' 'Hello,\ttab' 'world\0!'
assertStdoutIs -e 'Hello,\ttab world\0! \n'
}
doc_Delim="Serval non-JNI output delimiter environment variable"
@ -81,7 +81,7 @@ test_NullArg() {
doc_help="Serval JNI returns help text"
test_help() {
execute --core-backtrace java "-Djava.library.path=$LD_LIBRARY_PATH" -classpath "$PWD/classes" org.servalproject.servaldna.ServalDCommand 'help'
execute --core-backtrace java "-Djava.library.path=$LD_LIBRARY_PATH" -classpath "$PWD/classes" org.servalproject.test.ServalDTests 'help'
tfw_cat --stdout --stderr
assertExitStatus '==' 0
assertStdoutGrep 'Serval DNA version '