/* * Copyright 2013, The Sporting Exchange Limited * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // Originally from UpdatedComponentTests/StandardTesting/REST/Rest_Get_RequestTypes_Parameters_SetOfStrings_Volume.xls; package com.betfair.cougar.tests.updatedcomponenttests.standardtesting.rest; import com.betfair.testing.utils.cougar.misc.XMLHelpers; import com.betfair.testing.utils.cougar.assertions.AssertionUtils; import com.betfair.testing.utils.cougar.beans.HttpCallBean; import com.betfair.testing.utils.cougar.beans.HttpResponseBean; import com.betfair.testing.utils.cougar.enums.CougarMessageProtocolRequestTypeEnum; import com.betfair.testing.utils.cougar.manager.CougarManager; import com.betfair.testing.utils.cougar.manager.RequestLogRequirement; import org.testng.annotations.Test; import org.w3c.dom.Document; import java.sql.Timestamp; import java.util.HashMap; import java.util.Map; /** * Ensure that when the 4 supported Rest XML/JSON Gets are performed, Cougar can handle a Set of Strings with a large volume of entries being passed in the Header and Query parameters */ public class RestGetRequestTypesParametersSetOfStringsVolumeTest { @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"); httpCallBeanBaseline.setOperationName("stringSetOperation"); // Set the parameters to sets of string with a large volume of entries Map map2 = new HashMap(); map2.put("HeaderParam","header1,header2"); httpCallBeanBaseline.setHeaderParams(map2); Map map3 = new HashMap(); map3.put("queryParam","entry1,entry2,entry3,entry4,entry5,entry6,entry7,entry8,entry9,entry10,entry11,entry12,entry13,entry14,entry15,entry16,entry17,entry18,entry19,entry20,entry21,entry22,entry23,entry24,entry25,entry26,entry27,entry28,entry29,entry30,entry31,entry32,entry33,entry34,entry35,entry36,entry37,entry38,entry39,entry40,entry41,entry42,entry43,entry44,entry45,entry46,entry47,entry48,entry49,entry50,entry51,entry52,entry53,entry54,entry55,entry56,entry57,entry58,entry59,entry60,entry61,entry62,entry63,entry64,entry65,entry66,entry67,entry68,entry69,entry70,entry71,entry72,entry73,entry74,entry75,entry76,entry77,entry78,entry79,entry80,entry81,entry82,entry83,entry84,entry85,entry86,entry87,entry88,entry89,entry90,entry91,entry92,entry93,entry94,entry95,entry96,entry97,entry98,entry99,entry100,entry101,entry102,entry103,entry104,entry105,entry106,entry107,entry108,entry109,entry110,entry111,entry112,entry113,entry114,entry115,entry116,entry117,entry118,entry119,entry120,entry121,entry122,entry123,entry124,entry125,entry126,entry127,entry128,entry129,entry130,entry131,entry132,entry133,entry134,entry135,entry136,entry137,entry138,entry139,entry140,entry141,entry142,entry143,entry144,entry145,entry146,entry147,entry148,entry149,entry150,entry151,entry152,entry153,entry154,entry155,entry156,entry157,entry158,entry159,entry160,entry161,entry162,entry163,entry164,entry165,entry166,entry167,entry168,entry169,entry170,entry171,entry172,entry173,entry174,entry175,entry176,entry177,entry178,entry179,entry180,entry181,entry182,entry183,entry184,entry185,entry186,entry187,entry188,entry189,entry190,entry191,entry192,entry193,entry194,entry195,entry196,entry197,entry198,entry199,entry200,entry201,entry202,entry203,entry204,entry205,entry206,entry207,entry208,entry209,entry210,entry211,entry212,entry213,entry214,entry215,entry216,entry217,entry218,entry219,entry220,entry221,entry222,entry223,entry224,entry225,entry226,entry227,entry228,entry229,entry230,entry231,entry232,entry233,entry234,entry235,entry236,entry237,entry238,entry239,entry240,entry241,entry242,entry243,entry244,entry245,entry246,entry247,entry248,entry249,entry250,entry251,entry252,entry253,entry254,entry255,entry256,entry257,entry258,entry259,entry260,entry261,entry262,entry263,entry264,entry265,entry266,entry267,entry268,entry269,entry270,entry271,entry272,entry273,entry274,entry275,entry276,entry277,entry278,entry279,entry280,entry281,entry282,entry283,entry284,entry285,entry286,entry287,entry288,entry289,entry290,entry291,entry292,entry293,entry294,entry295,entry296,entry297,entry298,entry299,entry300"); httpCallBeanBaseline.setQueryParams(map3); // Get current time for getting log entries later Timestamp timeStamp = new Timestamp(System.currentTimeMillis()); // Make the 4 REST calls to the operation cougarManagerBaseline.makeRestCougarHTTPCalls(httpCallBeanBaseline); // Create the expected response as an XML document XMLHelpers xMLHelpers5 = new XMLHelpers(); Document xmlDocument = xMLHelpers5.getXMLObjectFromString("<NonMandatoryParamsOperationResponseObject><headerParameter>header1,header2</headerParameter><queryParameter>entry1,entry10,entry100,entry101,entry102,entry103,entry104,entry105,entry106,entry107,entry108,entry109,entry11,entry110,entry111,entry112,entry113,entry114,entry115,entry116,entry117,entry118,entry119,entry12,entry120,entry121,entry122,entry123,entry124,entry125,entry126,entry127,entry128,entry129,entry13,entry130,entry131,entry132,entry133,entry134,entry135,entry136,entry137,entry138,entry139,entry14,entry140,entry141,entry142,entry143,entry144,entry145,entry146,entry147,entry148,entry149,entry15,entry150,entry151,entry152,entry153,entry154,entry155,entry156,entry157,entry158,entry159,entry16,entry160,entry161,entry162,entry163,entry164,entry165,entry166,entry167,entry168,entry169,entry17,entry170,entry171,entry172,entry173,entry174,entry175,entry176,entry177,entry178,entry179,entry18,entry180,entry181,entry182,entry183,entry184,entry185,entry186,entry187,entry188,entry189,entry19,entry190,entry191,entry192,entry193,entry194,entry195,entry196,entry197,entry198,entry199,entry2,entry20,entry200,entry201,entry202,entry203,entry204,entry205,entry206,entry207,entry208,entry209,entry21,entry210,entry211,entry212,entry213,entry214,entry215,entry216,entry217,entry218,entry219,entry22,entry220,entry221,entry222,entry223,entry224,entry225,entry226,entry227,entry228,entry229,entry23,entry230,entry231,entry232,entry233,entry234,entry235,entry236,entry237,entry238,entry239,entry24,entry240,entry241,entry242,entry243,entry244,entry245,entry246,entry247,entry248,entry249,entry25,entry250,entry251,entry252,entry253,entry254,entry255,entry256,entry257,entry258,entry259,entry26,entry260,entry261,entry262,entry263,entry264,entry265,entry266,entry267,entry268,entry269,entry27,entry270,entry271,entry272,entry273,entry274,entry275,entry276,entry277,entry278,entry279,entry28,entry280,entry281,entry282,entry283,entry284,entry285,entry286,entry287,entry288,entry289,entry29,entry290,entry291,entry292,entry293,entry294,entry295,entry296,entry297,entry298,entry299,entry3,entry30,entry300,entry31,entry32,entry33,entry34,entry35,entry36,entry37,entry38,entry39,entry4,entry40,entry41,entry42,entry43,entry44,entry45,entry46,entry47,entry48,entry49,entry5,entry50,entry51,entry52,entry53,entry54,entry55,entry56,entry57,entry58,entry59,entry6,entry60,entry61,entry62,entry63,entry64,entry65,entry66,entry67,entry68,entry69,entry7,entry70,entry71,entry72,entry73,entry74,entry75,entry76,entry77,entry78,entry79,entry8,entry80,entry81,entry82,entry83,entry84,entry85,entry86,entry87,entry88,entry89,entry9,entry90,entry91,entry92,entry93,entry94,entry95,entry96,entry97,entry98,entry99</queryParameter></NonMandatoryParamsOperationResponseObject>"); // Convert the expected response to REST types for comparison with actual responses Map<CougarMessageProtocolRequestTypeEnum, Object> convertedResponses = cougarManagerBaseline.convertResponseToRestTypes(xmlDocument, httpCallBeanBaseline); // Check the 4 responses are as expected HttpResponseBean response6 = httpCallBeanBaseline.getResponseObjectsByEnum(com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum.RESTXMLXML); AssertionUtils.multiAssertEquals(convertedResponses.get(CougarMessageProtocolRequestTypeEnum.RESTXML), response6.getResponseObject()); AssertionUtils.multiAssertEquals((int) 200, response6.getHttpStatusCode()); AssertionUtils.multiAssertEquals("OK", response6.getHttpStatusText()); HttpResponseBean response7 = httpCallBeanBaseline.getResponseObjectsByEnum(com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum.RESTJSONJSON); AssertionUtils.multiAssertEquals(convertedResponses.get(CougarMessageProtocolRequestTypeEnum.RESTJSON), response7.getResponseObject()); AssertionUtils.multiAssertEquals((int) 200, response7.getHttpStatusCode()); AssertionUtils.multiAssertEquals("OK", response7.getHttpStatusText()); HttpResponseBean response8 = httpCallBeanBaseline.getResponseObjectsByEnum(com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum.RESTXMLJSON); AssertionUtils.multiAssertEquals(convertedResponses.get(CougarMessageProtocolRequestTypeEnum.RESTJSON), response8.getResponseObject()); AssertionUtils.multiAssertEquals((int) 200, response8.getHttpStatusCode()); AssertionUtils.multiAssertEquals("OK", response8.getHttpStatusText()); HttpResponseBean response9 = httpCallBeanBaseline.getResponseObjectsByEnum(com.betfair.testing.utils.cougar.enums.CougarMessageProtocolResponseTypeEnum.RESTJSONXML); AssertionUtils.multiAssertEquals(convertedResponses.get(CougarMessageProtocolRequestTypeEnum.RESTXML), response9.getResponseObject()); AssertionUtils.multiAssertEquals((int) 200, response9.getHttpStatusCode()); AssertionUtils.multiAssertEquals("OK", response9.getHttpStatusText()); // Check the log entries are as expected cougarManagerBaseline.verifyRequestLogEntriesAfterDate(timeStamp, new RequestLogRequirement("2.8", "stringSetOperation"),new RequestLogRequirement("2.8", "stringSetOperation"),new RequestLogRequirement("2.8", "stringSetOperation"),new RequestLogRequirement("2.8", "stringSetOperation") ); } }