// Copyright 2005 Google Inc. // All Rights Reserved. package net.jsunit; import junit.framework.TestCase; import net.jsunit.utility.XmlUtility; import org.jdom.Document; import java.io.InputStream; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLStreamHandler; public class RemoteMachineRunnerHitterTest extends TestCase { String xml = "<my_document><my_node value=\"1\">my text</my_node></my_document>"; public void testAllAtOnce() throws Exception { RemoteMachineServerHitter hitter = new RemoteMachineServerHitter(); Document document = hitter.hitURL(createURL(xml, xml.length())); assertDocumentHasXml(xml, document); } public void testAPieceAtATime() throws Exception { RemoteMachineServerHitter hitter = new RemoteMachineServerHitter(); Document document = hitter.hitURL(createURL(xml, 3)); assertDocumentHasXml(xml, document); } private void assertDocumentHasXml(String expectedXML, Document document) { assertEquals(expectedXML, XmlUtility.asString(document.getRootElement())); } private URL createURL(final String xml, final int byteCount) throws MalformedURLException { return new URL("http", "www.example.com", 8080, "foo", new URLStreamHandler() { protected URLConnection openConnection(URL u) { return new URLConnection(u) { public void connect() { } public InputStream getInputStream() { return new InputStream() { private int index = 0; public int read() { if (index >= xml.length()) return -1; return xml.codePointAt(index++); } }; } }; } }); } }