import java.util.ArrayList;
-import junit.framework.Assert;
+import org.junit.Assert;
import net.jaekl.qd.QDException;
import net.jaekl.qd.xml.ParseResult;
import net.jaekl.qd.xml.XmlParseException;
import org.apache.http.NameValuePair;
import org.junit.Test;
+import org.xml.sax.SAXParseException;
public class RequestBrokerTest {
// Try submitting a request (with a mocked-out http post component)
// and validate that we do, in fact, return the expected text (XML).
@Test
- public void test_sumbit() throws QDException {
+ public void test_submit() throws QDException {
ArrayList<NameValuePair> emptyParams = new ArrayList<NameValuePair>();
RequestBrokerMock rbm = new RequestBrokerMock(GATEWAY, emptyParams);
- rbm.setOutput(METHOD, emptyParams, ROUTE_SUMMARY_FOR_STOP);
+ rbm.setResult(METHOD, emptyParams, ROUTE_SUMMARY_FOR_STOP);
String actual = rbm.submit(METHOD, emptyParams);
ArrayList<NameValuePair> emptyParams = new ArrayList<NameValuePair>();
RequestBrokerMock rbm = new RequestBrokerMock(GATEWAY, emptyParams);
- rbm.setOutput(METHOD, emptyParams, ROUTE_SUMMARY_FOR_STOP);
+ rbm.setResult(METHOD, emptyParams, ROUTE_SUMMARY_FOR_STOP);
ParseResult pr = rbm.submitAndParse(METHOD, emptyParams, RouteSummaryParse.class);
Assert.assertEquals(passedParams, rbpem.getParamsPassed());
Assert.assertEquals(ParseResult.class, rbpem.getParserClassPassed());
}
+
+ @Test
+ public void test_submitAndParse_nonXmlResponse() {
+ ArrayList<NameValuePair> emptyParams = new ArrayList<NameValuePair>();
+
+ RequestBrokerMock rbm = new RequestBrokerMock(GATEWAY, emptyParams);
+ rbm.setResult(METHOD, emptyParams, "No stop number specified");
+
+ try {
+ rbm.submitAndParse(METHOD, emptyParams, RouteSummaryParse.class);
+ Assert.fail("Should have thrown an InvalidResultException");
+ }
+ catch (QDException qde) {
+ Assert.assertTrue(qde instanceof InvalidResponseException);
+ Assert.assertTrue(qde.toString().contains(GATEWAY));
+ Assert.assertTrue(qde.toString().contains(METHOD));
+ }
+ }
+
+ @Test
+ public void test_submitAndParse_throwsInvalidResultException() {
+ final String RESPONSE = "Must specify stop number.";
+ InvalidResponseException ire = new InvalidResponseException(new SAXParseException("dummy", null), GATEWAY, METHOD, RESPONSE);
+ ArrayList<NameValuePair> emptyParams = new ArrayList<NameValuePair>();
+
+ RequestBrokerMock rbm = new RequestBrokerMock(GATEWAY, emptyParams);
+ rbm.setResult(METHOD, emptyParams, ire);
+
+ try {
+ rbm.submitAndParse(METHOD, emptyParams, RouteSummaryParse.class);
+ Assert.fail("Should have thrown an exception");
+ }
+ catch (QDException qde) {
+ Assert.assertTrue(qde instanceof InvalidResponseException);
+ Assert.assertEquals(ire, qde);
+ Assert.assertTrue(ire.toString().contains(GATEWAY));
+ Assert.assertTrue(ire.toString().contains(METHOD));
+ Assert.assertTrue(ire.toString().contains(RESPONSE));
+ }
+ }
}