@Test(priority = 2, groups = { "wso2.esb" }, description = "Google Contacts {retrieveContactGroupsByQuery} integration test with optional parameters.")
public void testRetrieveContactGroupsByQueryWithOptionalParameters() throws Exception {
final Map<String, String> parametersMap = new HashMap<String, String>();
parametersMap.put("reqUrl", "https://www.google.com/m8/feeds/groups/default/full");
Query contactQuery = (Query) loadObjectFromFile("api_retrieveContactGroupsByQuery_optional.xml", parametersMap);
SOAPEnvelope esbSoapResponse =
sendSOAPRequest(proxyUrl, "esb_retrieveContactGroupsByQuery_optional.xml", parametersMap);
ContactGroupFeed feed =
directInvoker.getDirectInvokerContactsService().query(contactQuery, ContactGroupFeed.class);
Assert.assertEquals(Integer.parseInt((String) xPathEvaluate(esbSoapResponse.getBody()
.getFirstElement(), "string(//openSearch:totalResults/text())", nameSpaceMap)), feed.getTotalResults());
Assert.assertEquals(Integer.parseInt((String) xPathEvaluate(esbSoapResponse.getBody()
.getFirstElement(), "string(//openSearch:itemsPerPage/text())", nameSpaceMap)), feed.getItemsPerPage());
Assert.assertEquals(
Integer.parseInt((String) xPathEvaluate(esbSoapResponse.getBody().getFirstElement(),
"string(//openSearch:startIndex/text())", nameSpaceMap)), feed.getStartIndex());
}