⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 packagetest.java

📁 测试工具
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
				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 + -