📄 packagetest.java
字号:
wait(1000);
} catch (InterruptedException e) {
System.out.println(e);
}
// System.out.println("<wait:"+Thread.currentThread().getName());
}
void done() {
// System.out.println(">done:"+Thread.currentThread().getName());
notifyAll();
}
}
private static Baton baton = new Baton();
public void CSVThread1() throws Exception {
Thread.currentThread().setName("One");
synchronized (baton) {
assertEquals("b1", cr1.execute(null, null));
assertEquals("", cr4.execute(null, null));
assertEquals("b2", cr1.execute(null, null));
baton.pass();
assertEquals("", cr4.execute(null, null));
assertEquals("b4", cr1.execute(null, null));
assertEquals("", cr4.execute(null, null));
baton.pass();
assertEquals("b3", cr1.execute(null, null));
assertEquals("", cr4.execute(null, null));
baton.done();
}
}
public void CSVThread2() throws Exception {
Thread.currentThread().setName("Two");
Thread.sleep(500);// Allow other thread to start
synchronized (baton) {
assertEquals("b3", cr1.execute(null, null));
assertEquals("", cr4.execute(null, null));
baton.pass();
assertEquals("b1", cr1.execute(null, null));
assertEquals("", cr4.execute(null, null));
assertEquals("b2", cr1.execute(null, null));
baton.pass();
assertEquals("", cr4.execute(null, null));
assertEquals("b4", cr1.execute(null, null));
baton.done();
}
}
public void CSVRun() throws Exception {
assertEquals("b1", cr1.execute(null, null));
assertEquals("c1", cr2.execute(null, null));
assertEquals("d1", cr3.execute(null, null));
assertEquals("", cr4.execute(null, null));
assertEquals("b2", cr1.execute(null, null));
assertEquals("c2", cr2.execute(null, null));
assertEquals("d2", cr3.execute(null, null));
assertEquals("", cr4.execute(null, null));
assertEquals("b3", cr1.execute(null, null));
assertEquals("c3", cr2.execute(null, null));
assertEquals("d3", cr3.execute(null, null));
assertEquals("", cr4.execute(null, null));
assertEquals("b4", cr1.execute(null, null));
assertEquals("c4", cr2.execute(null, null));
assertEquals("d4", cr3.execute(null, null));
assertEquals("", cr4.execute(null, null));
assertEquals("b1", cr1.execute(null, null));
assertEquals("c1", cr2.execute(null, null));
assertEquals("d1", cr3.execute(null, null));
assertEquals("a1", cr5.execute(null, null));
assertEquals("", cr6.execute(null, null));
assertEquals("a2", cr5.execute(null, null));
}
public void CSVParams() throws Exception {
try {
setParams(null, null);
fail("Should have failed");
} catch (InvalidVariableException e) {
}
try {
setParams(null, "");
fail("Should have failed");
} catch (InvalidVariableException e) {
}
try {
setParams("", null);
fail("Should have failed");
} catch (InvalidVariableException e) {
}
}
public void CSVSetup() throws Exception {
cr1 = setParams("testfiles/test.csv", "1");
cr2 = setParams("testfiles/test.csv", "2");
cr3 = setParams("testfiles/test.csv", "3");
cr4 = setParams("testfiles/test.csv", "next");
cr5 = setParams("", "0");
cr6 = setParams("", "next");
}
public void CSValias() throws Exception {
cr1 = setParams("testfiles/test.csv", "*A");
cr2 = setParams("*A", "1");
cr3 = setParams("*A", "next");
cr4 = setParams("testfiles/test.csv", "*B");
cr5 = setParams("*B", "2");
cr6 = setParams("*B", "next");
String s;
s = cr1.execute(null, null); // open as *A
assertEquals("", s);
s = cr2.execute(null, null); // col 1, line 1, *A
assertEquals("b1", s);
s = cr4.execute(null, null);// open as *B
assertEquals("", s);
s = cr5.execute(null, null);// col2 line 1
assertEquals("c1", s);
s = cr3.execute(null, null);// *A next
assertEquals("", s);
s = cr2.execute(null, null);// col 1, line 2, *A
assertEquals("b2", s);
s = cr5.execute(null, null);// col2, line 1, *B
assertEquals("c1", s);
s = cr6.execute(null, null);// *B next
assertEquals("", s);
s = cr5.execute(null, null);// col2, line 2, *B
assertEquals("c2", s);
}
public void CSVNoFile() throws Exception {
String s;
cr1 = setParams("xtestfiles/test.csv", "1");
log.info("Expecting file not found");
s = cr1.execute(null, null);
assertEquals("", s);
cr2 = setParams("xtestfiles/test.csv", "next");
log.info("Expecting no entry for file");
s = cr2.execute(null, null);
assertEquals("", s);
cr3 = setParams("xtestfiles/test.csv", "*ABC");
log.info("Expecting file not found");
s = cr3.execute(null, null);
assertEquals("", s);
cr4 = setParams("*ABC", "1");
log.info("Expecting cannot open file");
s = cr4.execute(null, null);
assertEquals("", s);
}
// Check blank lines are treated as EOF
public void CSVBlankLine() throws Exception {
CSVRead csv1 = setParams("testfiles/testblank.csv", "1");
CSVRead csv2 = setParams("testfiles/testblank.csv", "next");
String s;
for (int i = 1; i <= 2; i++) {
s = csv1.execute(null, null);
assertEquals("b1", s);
s = csv2.execute(null, null);
assertEquals("", s);
s = csv1.execute(null, null);
assertEquals("b2", s);
s = csv2.execute(null, null);
assertEquals("", s);
}
}
// XPathFileContainer tests
public void XPathtestNull() throws Exception {
try {
new XPathFileContainer("nosuch.xml", "/");
fail("Should not find the file");
} catch (FileNotFoundException e) {
}
}
public void XPathtestrowNum() throws Exception {
XPathFileContainer f = new XPathFileContainer("../build.xml", "/project/target/@name");
assertNotNull(f);
// assertEquals("Expected 4 lines",4,f.size());
int myRow = f.nextRow();
assertEquals(0, myRow);
assertEquals(1, f.getNextRow());
myRow = f.nextRow();
assertEquals(1, myRow);
assertEquals(2, f.getNextRow());
myRow = f.nextRow();
assertEquals(2, myRow);
assertEquals(3, f.getNextRow());
// myRow = f.nextRow();
// assertEquals(3,myRow);
// assertEquals(0,f.getNextRow());
// myRow = f.nextRow();
// assertEquals(0,myRow);
// assertEquals(1,f.getNextRow());
}
public void XPathtestColumns() throws Exception {
XPathFileContainer f = new XPathFileContainer("../build.xml", "/project/target/@name");
assertNotNull(f);
assertTrue("Not empty", f.size() > 0);
int last = 0;
for (int i = 0; i < f.size(); i++) {
last = f.nextRow();
log.debug("found [" + i + "]" + f.getXPathString(last));
}
assertEquals(last + 1, f.size());
}
public void XPathtestDefault() throws Exception {
XPathFileContainer f = new XPathFileContainer("../build.xml", "/project/@default");
assertNotNull(f);
assertTrue("Not empty", f.size() > 0);
assertEquals("all", f.getXPathString(0));
}
public void XPathEmpty() throws Exception{
XPath xp = setupXPath("","");
String val=xp.execute();
assertEquals("",val);
val=xp.execute();
assertEquals("",val);
val=xp.execute();
assertEquals("",val);
}
public void XPathNoFile() throws Exception{
XPath xp = setupXPath("no-such-file","");
String val=xp.execute();
assertEquals("",val); // TODO - should check that error has been logged...
}
public void XPathFile1() throws Exception{
XPath xp = setupXPath("testfiles/XPathTest.xml","//user/@username");
assertEquals("u1",xp.execute());
assertEquals("u2",xp.execute());
assertEquals("u3",xp.execute());
assertEquals("u4",xp.execute());
assertEquals("u5",xp.execute());
assertEquals("u1",xp.execute());
}
public void XPathFile2() throws Exception{
XPath xp1 = setupXPath("testfiles/XPathTest.xml","//user/@username");
XPath xp1a = setupXPath("testfiles/XPathTest.xml","//user/@username");
XPath xp2 = setupXPath("testfiles/XPathTest.xml","//user/@password");
XPath xp2a = setupXPath("testfiles/XPathTest.xml","//user/@password");
assertEquals("u1",xp1.execute());
assertEquals("p1",xp2.execute());
assertEquals("p2",xp2.execute());
assertEquals("u2",xp1a.execute());
assertEquals("u3",xp1.execute());
assertEquals("u4",xp1.execute());
assertEquals("p3",xp2a.execute());
}
private static XPath sxp1,sxp2;
// Use same XPath for both threads
public void XPathSetup1() throws Exception{
sxp1 = setupXPath("testfiles/XPathTest.xml","//user/@username");
sxp2=sxp1;
}
// Use different XPath for both threads
public void XPathSetup2() throws Exception{
sxp1 = setupXPath("testfiles/XPathTest.xml","//user/@username");
sxp2 = setupXPath("testfiles/XPathTest.xml","//user/@username");
}
public void XPathThread1() throws Exception {
Thread.currentThread().setName("XPathOne");
synchronized (baton) {
assertEquals("u1",sxp1.execute());
assertEquals("u2",sxp1.execute());
baton.pass();
assertEquals("u5",sxp1.execute());
baton.pass();
assertEquals("u2",sxp1.execute());
baton.done();
}
}
public void XPathThread2() throws Exception {
Thread.currentThread().setName("XPathTwo");
Thread.sleep(500);
synchronized (baton) {
assertEquals("u3",sxp2.execute());
assertEquals("u4",sxp2.execute());
baton.pass();
assertEquals("u1",sxp2.execute());
baton.pass();
assertEquals("u3",sxp2.execute());
baton.done();
}
}
private XPath setupXPath(String file, String expr) throws Exception{
Collection parms = new LinkedList();
parms.add(new CompoundVariable(file));
parms.add(new CompoundVariable(expr));
XPath xp = new XPath();
xp.setParameters(parms);
return xp;
}
public void randomTest1() throws Exception {
Random r = new Random();
Collection parms = MakeParams("0","10000000000","VAR");
r.setParameters(parms);
//String s =
r.execute(null,null);
}
public void variableTest1() throws Exception {
Variable r = new Variable();
vars.put("A_1","a1");
vars.put("A_2","a2");
vars.put("one","1");
vars.put("two","2");
vars.put("V","A");
Collection parms;
String s;
parms = MakeParams("V",null,null);
r.setParameters(parms);
s = r.execute(null,null);
assertEquals("A",s);
parms = MakeParams("X",null,null);
r.setParameters(parms);
s = r.execute(null,null);
assertEquals("X",s);
parms = MakeParams("A${X}",null,null);
r.setParameters(parms);
s = r.execute(null,null);
assertEquals("A${X}",s);
parms = MakeParams("A_1",null,null);
r.setParameters(parms);
s = r.execute(null,null);
assertEquals("a1",s);
parms = MakeParams("A_2",null,null);
r.setParameters(parms);
s = r.execute(null,null);
assertEquals("a2",s);
parms = MakeParams("A_${two}",null,null);
r.setParameters(parms);
s = r.execute(null,null);
assertEquals("a2",s);
parms = MakeParams("${V}_${one}",null,null);
r.setParameters(parms);
s = r.execute(null,null);
assertEquals("a1",s);
}
public void evalTest1() throws Exception {
EvalFunction eval = new EvalFunction();
vars.put("query","select ${column} from ${table}");
vars.put("column","name");
vars.put("table","customers");
Collection parms;
String s;
parms = MakeParams("${query}",null,null);
eval.setParameters(parms);
s = eval.execute(null,null);
assertEquals("select name from customers",s);
}
public void evalTest2() throws Exception {
EvalVarFunction evalVar = new EvalVarFunction();
vars.put("query","select ${column} from ${table}");
vars.put("column","name");
vars.put("table","customers");
Collection parms;
String s;
parms = MakeParams("query",null,null);
evalVar.setParameters(parms);
s = evalVar.execute(null,null);
assertEquals("select name from customers",s);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -