@Test(dataProvider = "SchemaValidationEnabled") public void doTest(boolean schemaValidationEnabled) throws Exception { CougarHelpers helpers = new CougarHelpers(); try { CougarManager cougarManager = CougarManager.getInstance(); helpers.setSOAPSchemaValidationEnabled(schemaValidationEnabled); // Create the SOAP request as an XML Document (with a complex map parameter with complex entry // missing mandatory fields) XMLHelpers xMLHelpers1 = new XMLHelpers(); Document createAsDocument1 = xMLHelpers1.getXMLObjectFromString( "<MapOfComplexOperationRequest><inputMap><entry key=\"aaa\"><ComplexObject/></entry></inputMap></MapOfComplexOperationRequest>"); // Set up the Http Call Bean to make the request CougarManager cougarManager2 = CougarManager.getInstance(); HttpCallBean getNewHttpCallBean5 = cougarManager2.getNewHttpCallBean("87.248.113.14"); CougarManager cougarManager5 = cougarManager2; getNewHttpCallBean5.setServiceName("Baseline"); getNewHttpCallBean5.setVersion("v2"); // Set the created SOAP request as the PostObject getNewHttpCallBean5.setPostObjectForRequestType(createAsDocument1, "SOAP"); // Get current time for getting log entries later Timestamp getTimeAsTimeStamp10 = new Timestamp(System.currentTimeMillis()); // Make the SOAP call to the operation cougarManager5.makeSoapCougarHTTPCalls(getNewHttpCallBean5); // Create the expected response object as an XML document (fault) XMLHelpers xMLHelpers4 = new XMLHelpers(); Document createAsDocument11 = xMLHelpers4.getXMLObjectFromString( "<soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>DSC-0018</faultstring><detail/></soapenv:Fault>"); // Convert the expected response to SOAP for comparison with the actual response Map<String, Object> convertResponseToSOAP12 = cougarManager5.convertResponseToSOAP(createAsDocument11, getNewHttpCallBean5); // Check the response is as expected HttpResponseBean response5 = getNewHttpCallBean5.getResponseObjectsByEnum( com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum.SOAP); AssertionUtils.multiAssertEquals( convertResponseToSOAP12.get("SOAP"), response5.getResponseObject()); // generalHelpers.pauseTest(2000L); // Check the log entries are as expected cougarManager5.verifyAccessLogEntriesAfterDate( getTimeAsTimeStamp10, new AccessLogRequirement("87.248.113.14", "/BaselineService/v2", "BadRequest")); } finally { helpers.setSOAPSchemaValidationEnabled(true); } }
@Test public void doTest() throws Exception { // Set up the Http Call Bean to make the request CougarManager cougarManager1 = CougarManager.getInstance(); HttpCallBean callBean = cougarManager1.getNewHttpCallBean("87.248.113.14"); CougarManager cougarManager = cougarManager1; cougarManager.setCougarFaultControllerJMXMBeanAttrbiute("DetailedFaults", "false"); // Set the call bean to use JSON batching callBean.setJSONRPC(true); // Set the list of requests to make a batched call to Map[] mapArray2 = new Map[3]; mapArray2[0] = new HashMap(); mapArray2[0].put("method", "dateTimeOperation"); mapArray2[0].put("params", "[{\"dateTimeParameter\":\"2009-06-01T11:50:00.435\"}]"); mapArray2[0].put("id", "\"DateTimeNoOff\""); mapArray2[1] = new HashMap(); mapArray2[1].put("method", "dateTimeOperation"); mapArray2[1].put("params", "[{\"dateTimeParameter\":\"2009-02-01T11:50:00.435\"}]"); mapArray2[1].put("id", "\"DateTimeNoOff2\""); mapArray2[2] = new HashMap(); mapArray2[2].put("method", "dateTimeOperation"); mapArray2[2].put("params", "[{\"dateTimeParameter\":\"2009-02-01T00:00:00.000\"}]"); mapArray2[2].put("id", "\"DateTimeNoOffMidNight\""); callBean.setBatchedRequests(mapArray2); // Get current time for getting log entries later Timestamp timeStamp = new Timestamp(System.currentTimeMillis()); // Make JSON call to the operation requesting a JSON response cougarManager.makeRestCougarHTTPCall( callBean, com.betfair.testing.utils.cougar.enums.CougarMessageProtocolRequestTypeEnum.RESTJSON, com.betfair.testing.utils.cougar.enums.CougarMessageContentTypeEnum.JSON); // Get the response to the batched query (store the response for further comparison as order of // batched responses cannot be relied on) HttpResponseBean actualResponseJSON = callBean.getResponseObjectsByEnum( com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum .RESTJSONJSON); // Convert the returned json object to a map for comparison CougarHelpers cougarHelpers4 = new CougarHelpers(); Map<String, Object> map5 = cougarHelpers4.convertBatchedResponseToMap(actualResponseJSON); AssertionUtils.multiAssertEquals( "{\"id\":\"DateTimeNoOff\",\"result\":{\"localTime\":\"2009-06-01T11:50:00.435Z\",\"localTime2\":\"2009-06-01T11:50:00.435Z\"},\"jsonrpc\":\"2.0\"}", map5.get("responseDateTimeNoOff")); AssertionUtils.multiAssertEquals( "{\"id\":\"DateTimeNoOff2\",\"result\":{\"localTime\":\"2009-02-01T11:50:00.435Z\",\"localTime2\":\"2009-02-01T11:50:00.435Z\"},\"jsonrpc\":\"2.0\"}", map5.get("responseDateTimeNoOff2")); AssertionUtils.multiAssertEquals( "{\"id\":\"DateTimeNoOffMidNight\",\"result\":{\"localTime\":\"2009-02-01T00:00:00.000Z\",\"localTime2\":\"2009-02-01T00:00:00.000Z\"},\"jsonrpc\":\"2.0\"}", map5.get("responseDateTimeNoOffMidNight")); AssertionUtils.multiAssertEquals("OK", map5.get("httpStatusText")); AssertionUtils.multiAssertEquals(200, map5.get("httpStatusCode")); // Pause the test to allow the logs to be filled // generalHelpers.pauseTest(500L); // Check the log entries are as expected cougarManager.verifyRequestLogEntriesAfterDate( timeStamp, new RequestLogRequirement("2.8", "dateTimeOperation"), new RequestLogRequirement("2.8", "dateTimeOperation"), new RequestLogRequirement("2.8", "dateTimeOperation")); CougarManager cougarManager9 = CougarManager.getInstance(); cougarManager9.verifyAccessLogEntriesAfterDate( timeStamp, new AccessLogRequirement("87.248.113.14", "/json-rpc", "Ok")); }
@Test(dataProvider = "SchemaValidationEnabled") public void doTest(boolean schemaValidationEnabled) throws Exception { CougarHelpers helpers = new CougarHelpers(); try { CougarManager cougarManager = CougarManager.getInstance(); helpers.setSOAPSchemaValidationEnabled(schemaValidationEnabled); // Create the HttpCallBean CougarManager cougarManager1 = CougarManager.getInstance(); HttpCallBean httpCallBeanBaseline = cougarManager1.getNewHttpCallBean(); CougarManager cougarManagerBaseline = cougarManager1; // Get the cougar logging attribute for getting log entries later // Point the created HttpCallBean at the correct service httpCallBeanBaseline.setServiceName("baseline", "cougarBaseline"); httpCallBeanBaseline.setVersion("v2"); // Create the SOAP request as an XML Document (with a missing mandatory boolean parameter) XMLHelpers xMLHelpers2 = new XMLHelpers(); Document createAsDocument2 = xMLHelpers2.getXMLObjectFromString( "<BoolOperationRequest><headerParam>true</headerParam><message><bodyParameter>true</bodyParameter></message></BoolOperationRequest>"); // Set up the Http Call Bean to make the request CougarManager cougarManager3 = CougarManager.getInstance(); HttpCallBean getNewHttpCallBean3 = cougarManager3.getNewHttpCallBean("87.248.113.14"); cougarManager3 = cougarManager3; cougarManager3.setCougarFaultControllerJMXMBeanAttrbiute("DetailedFaults", "false"); getNewHttpCallBean3.setServiceName("Baseline"); getNewHttpCallBean3.setVersion("v2"); // Set the created SOAP request as the PostObject getNewHttpCallBean3.setPostObjectForRequestType(createAsDocument2, "SOAP"); // Get current time for getting log entries later Timestamp getTimeAsTimeStamp9 = new Timestamp(System.currentTimeMillis()); // Make the SOAP call to the operation cougarManager3.makeSoapCougarHTTPCalls(getNewHttpCallBean3); // Create the expected response object as an XML document (fault) XMLHelpers xMLHelpers5 = new XMLHelpers(); Document createAsDocument11 = xMLHelpers5.getXMLObjectFromString( "<soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>DSC-0018</faultstring><detail/></soapenv:Fault>"); // Check the response is as expected HttpResponseBean response6 = getNewHttpCallBean3.getResponseObjectsByEnum( com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum.SOAP); AssertionUtils.multiAssertEquals(createAsDocument11, response6.getResponseObject()); // generalHelpers.pauseTest(500L); // Check the log entries are as expected CougarHelpers cougarHelpers10 = new CougarHelpers(); String JavaVersion = cougarHelpers10.getJavaVersion(); CougarManager cougarManager11 = CougarManager.getInstance(); cougarManager11.verifyAccessLogEntriesAfterDate( getTimeAsTimeStamp9, new AccessLogRequirement("87.248.113.14", "/BaselineService/v2", "BadRequest")); } finally { helpers.setSOAPSchemaValidationEnabled(true); } }
@Test public void doTest() throws Exception { // Create the HttpCallBean CougarManager cougarManager1 = CougarManager.getInstance(); HttpCallBean httpCallBeanBaseline = cougarManager1.getNewHttpCallBean(); CougarManager cougarManagerBaseline = cougarManager1; // Get the cougar logging attribute for getting log entries later // Point the created HttpCallBean at the correct service httpCallBeanBaseline.setServiceName("baseline", "cougarBaseline"); httpCallBeanBaseline.setVersion("v2"); // Set up the Http Call Bean to make the request CougarManager cougarManager2 = CougarManager.getInstance(); HttpCallBean callBean = cougarManager2.getNewHttpCallBean("87.248.113.14"); CougarManager cougarManager = cougarManager2; cougarManager.setCougarFaultControllerJMXMBeanAttrbiute("DetailedFaults", "false"); // Set the call bean to use JSON batching callBean.setJSONRPC(true); // Set the list of requests to make a batched call to Map[] mapArray3 = new Map[7]; mapArray3[0] = new HashMap(); mapArray3[0].put("method", "dateTimeOperation"); mapArray3[0].put("params", "[{\"dateTimeParameter\":\"2009-12-01T23:00:00.000Z\"}]"); mapArray3[0].put("id", "\"Call with correct params\""); mapArray3[1] = new HashMap(); mapArray3[1].put("method", "dateTimeOperation"); mapArray3[1].put("params", "[{\"dateTimeParameter\":\"true\"}]"); mapArray3[1].put("id", "\"Invalid parameter type\""); mapArray3[2] = new HashMap(); mapArray3[2].put("method", "dateTimeOperation"); mapArray3[2].put("params", "[{\"dateTimeParameter\":\"2009-12-01T25:00:00.000Z\"}]"); mapArray3[2].put("id", "\"Invalid Hour\""); mapArray3[3] = new HashMap(); mapArray3[3].put("method", "dateTimeOperation"); mapArray3[3].put("params", "[{\"dateTimeParameter\":\"2009-02-29T13:50:00.435Z\"}]"); mapArray3[3].put("id", "\"Invalid Leap Year\""); mapArray3[4] = new HashMap(); mapArray3[4].put("method", "dateTimeOperation"); mapArray3[4].put("params", "[{\"dateTimeParameter\":\"2009-12-01T23:60:00.000Z\"}]"); mapArray3[4].put("id", "\"Invalid Minute\""); mapArray3[5] = new HashMap(); mapArray3[5].put("method", "dateTimeOperation"); mapArray3[5].put("params", "[{\"dateTimeParameter\":\"2009-13-01T23:60:00.000Z\"}]"); mapArray3[5].put("id", "\"Invalid Month\""); mapArray3[6] = new HashMap(); mapArray3[6].put("method", "dateTimeOperation"); mapArray3[6].put("params", "[{\"dateTimeParameter\":\"2009-00-01T23:60:00.000Z\"}]"); mapArray3[6].put("id", "\"Invalid Month2\""); callBean.setBatchedRequests(mapArray3); // Get current time for getting log entries later Timestamp timeStamp = new Timestamp(System.currentTimeMillis()); // Make JSON call to the operation requesting a JSON response cougarManager.makeRestCougarHTTPCall( callBean, com.betfair.testing.utils.cougar.enums.CougarMessageProtocolRequestTypeEnum.RESTJSON, com.betfair.testing.utils.cougar.enums.CougarMessageContentTypeEnum.JSON); // Get the response to the batched query (store the response for further comparison as order of // batched responses cannot be relied on) HttpResponseBean actualResponseJSON = callBean.getResponseObjectsByEnum( com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum .RESTJSONJSON); // Convert the returned json object to a map for comparison CougarHelpers cougarHelpers5 = new CougarHelpers(); Map<String, Object> map6 = cougarHelpers5.convertBatchedResponseToMap(actualResponseJSON); AssertionUtils.multiAssertEquals( "{\"id\":\"Call with correct params\",\"result\":{\"localTime\":\"2009-12-01T23:00:00.000Z\",\"localTime2\":\"2009-12-01T23:00:00.000Z\"},\"jsonrpc\":\"2.0\"}", map6.get("responseCall with correct params")); AssertionUtils.multiAssertEquals( "{\"id\":\"Invalid parameter type\",\"error\":{\"message\":\"DSC-0044\",\"code\":-32602},\"jsonrpc\":\"2.0\"}", map6.get("responseInvalid parameter type")); AssertionUtils.multiAssertEquals( "{\"id\":\"Invalid Hour\",\"error\":{\"message\":\"DSC-0044\",\"code\":-32602},\"jsonrpc\":\"2.0\"}", map6.get("responseInvalid Hour")); AssertionUtils.multiAssertEquals( "{\"id\":\"Invalid Minute\",\"error\":{\"message\":\"DSC-0044\",\"code\":-32602},\"jsonrpc\":\"2.0\"}", map6.get("responseInvalid Minute")); AssertionUtils.multiAssertEquals( "{\"id\":\"Invalid Leap Year\",\"error\":{\"message\":\"DSC-0044\",\"code\":-32602},\"jsonrpc\":\"2.0\"}", map6.get("responseInvalid Leap Year")); AssertionUtils.multiAssertEquals( "{\"id\":\"Invalid Month\",\"error\":{\"message\":\"DSC-0044\",\"code\":-32602},\"jsonrpc\":\"2.0\"}", map6.get("responseInvalid Month")); AssertionUtils.multiAssertEquals( "{\"id\":\"Invalid Month2\",\"error\":{\"message\":\"DSC-0044\",\"code\":-32602},\"jsonrpc\":\"2.0\"}", map6.get("responseInvalid Month2")); AssertionUtils.multiAssertEquals(200, map6.get("httpStatusCode")); AssertionUtils.multiAssertEquals("OK", map6.get("httpStatusText")); // Pause the test to allow the logs to be filled // generalHelpers.pauseTest(500L); // Check the log entries are as expected cougarManager.verifyRequestLogEntriesAfterDate( timeStamp, new RequestLogRequirement("2.8", "dateTimeOperation")); CougarManager cougarManager10 = CougarManager.getInstance(); cougarManager10.verifyAccessLogEntriesAfterDate( timeStamp, new AccessLogRequirement("87.248.113.14", "/json-rpc", "Ok")); }
@Test public void doTest() throws Exception { // Set up the Http Call Bean to make the request CougarManager cougarManager1 = CougarManager.getInstance(); HttpCallBean getNewHttpCallBean1 = cougarManager1.getNewHttpCallBean("87.248.113.14"); cougarManager1 = cougarManager1; getNewHttpCallBean1.setOperationName("testParameterStylesQA"); getNewHttpCallBean1.setServiceName("baseline", "cougarBaseline"); getNewHttpCallBean1.setVersion("v2"); Map map2 = new HashMap(); map2.put("HeaderParam", "Foo"); getNewHttpCallBean1.setHeaderParams(map2); // Set the query parameter to a string containing encoded : Map map3 = new HashMap(); map3.put("queryParam", "colon%3A"); map3.put("dateQueryParam", "2009-06-01T13:50:00.0Z"); getNewHttpCallBean1.setQueryParams(map3); CougarHelpers cougarHelpers4 = new CougarHelpers(); Date convertedDate1 = cougarHelpers4.convertToSystemTimeZone("2009-06-01T13:50:00.0Z"); // Get current time for getting log entries later Timestamp getTimeAsTimeStamp8 = new Timestamp(System.currentTimeMillis()); // Make the 4 REST calls to the operation cougarManager1.makeRestCougarHTTPCalls(getNewHttpCallBean1); // Create the expected response as an XML document XMLHelpers xMLHelpers6 = new XMLHelpers(); Document createAsDocument10 = xMLHelpers6.createAsDocument( DocumentBuilderFactory.newInstance() .newDocumentBuilder() .parse( new ByteArrayInputStream( ("<SimpleResponse><message>headerParam=Foo,queryParam=colon:,dateQueryParam=" + cougarHelpers4.dateInUTC(convertedDate1) + "</message></SimpleResponse>") .getBytes()))); // Convert the expected response to REST types for comparison with actual responses Map<CougarMessageProtocolRequestTypeEnum, Object> convertResponseToRestTypes11 = cougarManager1.convertResponseToRestTypes(createAsDocument10, getNewHttpCallBean1); // Check the 4 responses are as expected HttpResponseBean response7 = getNewHttpCallBean1.getResponseObjectsByEnum( com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum .RESTXMLXML); AssertionUtils.multiAssertEquals( convertResponseToRestTypes11.get(CougarMessageProtocolRequestTypeEnum.RESTXML), response7.getResponseObject()); AssertionUtils.multiAssertEquals((int) 200, response7.getHttpStatusCode()); AssertionUtils.multiAssertEquals("OK", response7.getHttpStatusText()); HttpResponseBean response8 = getNewHttpCallBean1.getResponseObjectsByEnum( com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum .RESTJSONJSON); AssertionUtils.multiAssertEquals( convertResponseToRestTypes11.get(CougarMessageProtocolRequestTypeEnum.RESTJSON), response8.getResponseObject()); AssertionUtils.multiAssertEquals((int) 200, response8.getHttpStatusCode()); AssertionUtils.multiAssertEquals("OK", response8.getHttpStatusText()); HttpResponseBean response9 = getNewHttpCallBean1.getResponseObjectsByEnum( com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum .RESTXMLJSON); AssertionUtils.multiAssertEquals( convertResponseToRestTypes11.get(CougarMessageProtocolRequestTypeEnum.RESTJSON), response9.getResponseObject()); AssertionUtils.multiAssertEquals((int) 200, response9.getHttpStatusCode()); AssertionUtils.multiAssertEquals("OK", response9.getHttpStatusText()); HttpResponseBean response10 = getNewHttpCallBean1.getResponseObjectsByEnum( com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum .RESTJSONXML); AssertionUtils.multiAssertEquals( convertResponseToRestTypes11.get(CougarMessageProtocolRequestTypeEnum.RESTXML), response10.getResponseObject()); AssertionUtils.multiAssertEquals((int) 200, response10.getHttpStatusCode()); AssertionUtils.multiAssertEquals("OK", response10.getHttpStatusText()); // generalHelpers.pauseTest(500L); // Check the log entries are as expected cougarManager1.verifyRequestLogEntriesAfterDate( getTimeAsTimeStamp8, new RequestLogRequirement("2.8", "testParameterStylesQA"), new RequestLogRequirement("2.8", "testParameterStylesQA"), new RequestLogRequirement("2.8", "testParameterStylesQA"), new RequestLogRequirement("2.8", "testParameterStylesQA")); }
@Test(dataProvider = "SchemaValidationEnabled") public void doTest(boolean schemaValidationEnabled) throws Exception { CougarHelpers helpers = new CougarHelpers(); try { CougarManager cougarManager = CougarManager.getInstance(); helpers.setJMXMBeanAttributeValue( "com.betfair.cougar.transport:type=soapCommandProcessor", "SchemaValidationEnabled", schemaValidationEnabled); // Create the HttpCallBean CougarManager cougarManager1 = CougarManager.getInstance(); HttpCallBean httpCallBeanBaseline = cougarManager1.getNewHttpCallBean(); CougarManager cougarManagerBaseline = cougarManager1; // Get the cougar logging attribute for getting log entries later // Point the created HttpCallBean at the correct service httpCallBeanBaseline.setServiceName("baseline", "cougarBaseline"); httpCallBeanBaseline.setVersion("v2"); // Create the SOAP request as an XML Document (with missing required query parameter) XMLHelpers xMLHelpers2 = new XMLHelpers(); Document createAsDocument2 = xMLHelpers2.getXMLObjectFromString( "<TestParameterStylesRequest><HeaderParam>Foo</HeaderParam></TestParameterStylesRequest>"); // Set up the Http Call Bean to make the request CougarManager cougarManager3 = CougarManager.getInstance(); HttpCallBean getNewHttpCallBean3 = cougarManager3.getNewHttpCallBean(); cougarManager3 = cougarManager3; cougarManager3.setCougarFaultControllerJMXMBeanAttrbiute("DetailedFaults", "false"); getNewHttpCallBean3.setServiceName("Baseline"); getNewHttpCallBean3.setVersion("v2"); // Set the created SOAP request as the PostObject getNewHttpCallBean3.setPostObjectForRequestType(createAsDocument2, "SOAP"); // Get current time for getting log entries later Timestamp getTimeAsTimeStamp9 = new Timestamp(System.currentTimeMillis()); // Make the SOAP call to the operation cougarManager3.makeSoapCougarHTTPCalls(getNewHttpCallBean3); // Create the expected response object as an XML document XMLHelpers xMLHelpers5 = new XMLHelpers(); Document createAsDocument11 = xMLHelpers5.getXMLObjectFromString( "<soapenv:Fault><faultcode>soapenv:Client</faultcode><faultstring>DSC-0018</faultstring><detail/></soapenv:Fault>"); // Convert the expected response to SOAP for comparison with the actual response Map<String, Object> convertResponseToSOAP12 = cougarManager3.convertResponseToSOAP(createAsDocument11, getNewHttpCallBean3); // Check the response is as expected HttpResponseBean response6 = getNewHttpCallBean3.getResponseObjectsByEnum( com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum.SOAP); AssertionUtils.multiAssertEquals( convertResponseToSOAP12.get("SOAP"), response6.getResponseObject()); // Check the log entries are as expected CougarHelpers cougarHelpers8 = new CougarHelpers(); String JavaVersion = cougarHelpers8.getJavaVersion(); CougarManager cougarManager9 = CougarManager.getInstance(); cougarManager9.verifyAccessLogEntriesAfterDate( getTimeAsTimeStamp9, new AccessLogRequirement("87.248.113.14", "/BaselineService/v2", "BadRequest")); } finally { helpers.setJMXMBeanAttributeValue( "com.betfair.cougar.transport:type=soapCommandProcessor", "SchemaValidationEnabled", true); } }
public static void main(String[] args) { CougarHelpers ch = new CougarHelpers(); ch.setJMXConnectionFactory(); }