blob: d4033f68993ae600911c5f93f3c00b73582361a9 [file] [log] [blame]
/*
* =========================================================================
* Copyright (c) 2012-2014 Pivotal Software, Inc. All Rights Reserved.
* This product is protected by U.S. and international copyright
* and intellectual property laws. Pivotal products are covered by
* more patents listed at http://www.pivotal.io/patents.
* ========================================================================
*/
package com.vmware.gemfire.tools.pulse.tests.junit;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpUriRequest;
import org.apache.http.client.methods.RequestBuilder;
import org.apache.http.util.EntityUtils;
import org.junit.After;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import com.vmware.gemfire.tools.pulse.internal.json.JSONArray;
import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;
/**
* JUnit Tests for MemberGatewayHubService in the back-end server for region detail page
*
* @author rbhandekar
*
*/
public class MemberGatewayHubServiceTest extends BaseServiceTest {
/**
*
* @author rbhandekar
* @throws java.lang.Exception
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
doLogin();
System.out.println("\n\nMemberGatewayHubServiceTest :: Setup done");
}
/**
*
* @author rbhandekar
* @throws java.lang.Exception
*/
@AfterClass
public static void tearDownAfterClass() throws Exception {
doLogout();
System.out.println("MemberGatewayHubServiceTest :: Teardown done");
}
/**
*
* @author rbhandekar
* @throws java.lang.Exception
*/
@Override
@Before
public void setUp() throws Exception {
}
/**
*
* @author rbhandekar
* @throws java.lang.Exception
*/
@Override
@After
public void tearDown() throws Exception {
}
/**
* Tests that service returns json object
*
* @author rbhandekar
*/
@Test
public void testResponseNotNull() {
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE BEGIN : NULL RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE --------");
if(httpclient != null){
try{
HttpUriRequest pulseupdate = RequestBuilder.post()
.setUri(new URI(PULSE_UPDATE_URL))
.addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_5_VALUE)
.build();
CloseableHttpResponse response = httpclient.execute(pulseupdate);
try {
HttpEntity entity = response.getEntity();
System.out.println("MemberGatewayHubServiceTest :: HTTP request status : " + response.getStatusLine());
BufferedReader respReader = new BufferedReader(new InputStreamReader(entity.getContent()));
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
String sz = null;
while((sz = respReader.readLine()) != null){
pw.print(sz);
}
String jsonResp = sw.getBuffer().toString();
System.out.println("MemberGatewayHubServiceTest :: JSON response returned : " + jsonResp);
EntityUtils.consume(entity);
JSONObject jsonObj = new JSONObject(jsonResp);
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for MemberGatewayHub", jsonObj.getJSONObject("MemberGatewayHub"));
} finally {
response.close();
}
} catch(Exception failed) {
logException(failed);
Assert.fail("Exception ! ");
}
} else {
Assert.fail("MemberGatewayHubServiceTest :: No Http connection was established.");
}
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE END : NULL RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE ------\n");
}
/**
*
* Tests that response is for same region
*
* Test method for {@link com.vmware.gemfire.tools.pulse.internal.service.MemberGatewayHubService#execute(javax.servlet.http.HttpServletRequest)}.
*
* @author rbhandekar
*/
@Test
public void testResponseIsGatewaySender() {
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE BEGIN : IS GATEWAY SENDER IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE------");
if(httpclient != null){
try{
HttpUriRequest pulseupdate = RequestBuilder.post()
.setUri(new URI(PULSE_UPDATE_URL))
.addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_5_VALUE)
.build();
CloseableHttpResponse response = httpclient.execute(pulseupdate);
try {
HttpEntity entity = response.getEntity();
System.out.println("MemberGatewayHubServiceTest :: HTTP request status : " + response.getStatusLine());
BufferedReader respReader = new BufferedReader(new InputStreamReader(entity.getContent()));
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
String sz = null;
while((sz = respReader.readLine()) != null){
pw.print(sz);
}
String jsonResp = sw.getBuffer().toString();
System.out.println("MemberGatewayHubServiceTest :: JSON response returned : " + jsonResp);
EntityUtils.consume(entity);
JSONObject jsonObj = new JSONObject(jsonResp);
JSONObject memberGatewayHubObj = jsonObj.getJSONObject("MemberGatewayHub");
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for MemberGatewayHub", memberGatewayHubObj);
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'isGatewaySender' for member", memberGatewayHubObj.has("isGatewaySender"));
Boolean boolIsGatewaySender = memberGatewayHubObj.getBoolean("isGatewaySender");
Assert.assertEquals("MemberGatewayHubServiceTest :: Server returned wrong value for 'isGatewaySender'. Expected 'isGatewaySender' = true, actual 'isGatewaySender' = " + boolIsGatewaySender, boolIsGatewaySender, true);
} finally {
response.close();
}
} catch(Exception failed) {
logException(failed);
Assert.fail("Exception ! ");
}
} else {
Assert.fail("MemberGatewayHubServiceTest :: No Http connection was established.");
}
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE END : IS GATEWAY SENDER IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE ------\n");
}
/**
*
* Tests that response is for same region
*
* Test method for {@link com.vmware.gemfire.tools.pulse.internal.service.MemberGatewayHubService#execute(javax.servlet.http.HttpServletRequest)}.
*
* @author rbhandekar
*/
@Test
public void testResponseGatewaySenderCount() {
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE BEGIN : GATEWAY SENDER COUNT IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE------");
if(httpclient != null){
try{
HttpUriRequest pulseupdate = RequestBuilder.post()
.setUri(new URI(PULSE_UPDATE_URL))
.addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_5_VALUE)
.build();
CloseableHttpResponse response = httpclient.execute(pulseupdate);
try {
HttpEntity entity = response.getEntity();
System.out.println("MemberGatewayHubServiceTest :: HTTP request status : " + response.getStatusLine());
BufferedReader respReader = new BufferedReader(new InputStreamReader(entity.getContent()));
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
String sz = null;
while((sz = respReader.readLine()) != null){
pw.print(sz);
}
String jsonResp = sw.getBuffer().toString();
System.out.println("MemberGatewayHubServiceTest :: JSON response returned : " + jsonResp);
EntityUtils.consume(entity);
JSONObject jsonObj = new JSONObject(jsonResp);
JSONObject memberGatewayHubObj = jsonObj.getJSONObject("MemberGatewayHub");
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for MemberGatewayHub", memberGatewayHubObj);
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'isGatewaySender' for member", memberGatewayHubObj.has("isGatewaySender"));
Boolean boolIsGatewaySender = memberGatewayHubObj.getBoolean("isGatewaySender");
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'gatewaySenders' for member", memberGatewayHubObj.has("gatewaySenders"));
JSONArray arrGatewaySender = memberGatewayHubObj.getJSONArray("gatewaySenders");
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for 'gatewaySenders'", arrGatewaySender);
Assert.assertTrue( "MemberGatewayHubServiceTest :: Server returned mis-matched values for 'isGatewaySender' and gateway senders array count", ((boolIsGatewaySender && (arrGatewaySender.length() > 0)) || ((! boolIsGatewaySender) && (arrGatewaySender.length() == 0))) );
} finally {
response.close();
}
} catch(Exception failed) {
logException(failed);
Assert.fail("Exception ! ");
}
} else {
Assert.fail("MemberGatewayHubServiceTest :: No Http connection was established.");
}
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE END : GATEWAY SENDER COUNT IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE ------\n");
}
/**
*
* Tests that response is for same region
*
* Test method for {@link com.vmware.gemfire.tools.pulse.internal.service.MemberGatewayHubService#execute(javax.servlet.http.HttpServletRequest)}.
*
* @author rbhandekar
*/
@Test
public void testResponseGatewaySenderProperties() {
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE BEGIN : GATEWAY SENDER PROPERTIES IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE------");
if(httpclient != null){
try{
HttpUriRequest pulseupdate = RequestBuilder.post()
.setUri(new URI(PULSE_UPDATE_URL))
.addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_5_VALUE)
.build();
CloseableHttpResponse response = httpclient.execute(pulseupdate);
try {
HttpEntity entity = response.getEntity();
System.out.println("MemberGatewayHubServiceTest :: HTTP request status : " + response.getStatusLine());
BufferedReader respReader = new BufferedReader(new InputStreamReader(entity.getContent()));
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
String sz = null;
while((sz = respReader.readLine()) != null){
pw.print(sz);
}
String jsonResp = sw.getBuffer().toString();
System.out.println("MemberGatewayHubServiceTest :: JSON response returned : " + jsonResp);
EntityUtils.consume(entity);
JSONObject jsonObj = new JSONObject(jsonResp);
JSONObject memberGatewayHubObj = jsonObj.getJSONObject("MemberGatewayHub");
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for MemberGatewayHub", memberGatewayHubObj);
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'isGatewaySender' for member", memberGatewayHubObj.has("isGatewaySender"));
Boolean boolIsGatewaySender = memberGatewayHubObj.getBoolean("isGatewaySender");
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'gatewaySenders' for member", memberGatewayHubObj.has("gatewaySenders"));
JSONArray arrGatewaySender = memberGatewayHubObj.getJSONArray("gatewaySenders");
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for 'gatewaySenders'", arrGatewaySender);
Assert.assertTrue( "MemberGatewayHubServiceTest :: Server returned mis-matched values for 'isGatewaySender' and gateway senders array count", ((boolIsGatewaySender && (arrGatewaySender.length() > 0)) || ((! boolIsGatewaySender) && (arrGatewaySender.length() == 0))) );
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'remoteDSId' for member", ((JSONObject)arrGatewaySender.get(0)).has("remoteDSId"));
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'eventsExceedingAlertThreshold' for member", ((JSONObject)arrGatewaySender.get(0)).has("eventsExceedingAlertThreshold"));
} finally {
response.close();
}
} catch(Exception failed) {
logException(failed);
Assert.fail("Exception ! ");
}
} else {
Assert.fail("MemberGatewayHubServiceTest :: No Http connection was established.");
}
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE END : GATEWAY SENDER PROPERTIES IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE ------\n");
}
/**
*
* Tests that response is for same region
*
* Test method for {@link com.vmware.gemfire.tools.pulse.internal.service.MemberGatewayHubService#execute(javax.servlet.http.HttpServletRequest)}.
*
* @author rbhandekar
*/
@Test
public void testResponseAsyncEventQueueProperties() {
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE BEGIN : ASYNC EVENT QUEUE PROPERTIES IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE------");
if(httpclient != null){
try{
HttpUriRequest pulseupdate = RequestBuilder.post()
.setUri(new URI(PULSE_UPDATE_URL))
.addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_5_VALUE)
.build();
CloseableHttpResponse response = httpclient.execute(pulseupdate);
try {
HttpEntity entity = response.getEntity();
System.out.println("MemberGatewayHubServiceTest :: HTTP request status : " + response.getStatusLine());
BufferedReader respReader = new BufferedReader(new InputStreamReader(entity.getContent()));
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
String sz = null;
while((sz = respReader.readLine()) != null){
pw.print(sz);
}
String jsonResp = sw.getBuffer().toString();
System.out.println("MemberGatewayHubServiceTest :: JSON response returned : " + jsonResp);
EntityUtils.consume(entity);
JSONObject jsonObj = new JSONObject(jsonResp);
JSONObject memberGatewayHubObj = jsonObj.getJSONObject("MemberGatewayHub");
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for MemberGatewayHub", memberGatewayHubObj);
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'asyncEventQueues' for member", memberGatewayHubObj.has("asyncEventQueues"));
JSONArray arrAsyncEventQueues = memberGatewayHubObj.getJSONArray("asyncEventQueues");
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for 'asyncEventQueues'", arrAsyncEventQueues);
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'id' for member", ((JSONObject)arrAsyncEventQueues.get(0)).has("id"));
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'primary' for member", ((JSONObject)arrAsyncEventQueues.get(0)).has("primary"));
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'senderType' for member", ((JSONObject)arrAsyncEventQueues.get(0)).has("senderType"));
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'batchSize' for member", ((JSONObject)arrAsyncEventQueues.get(0)).has("batchSize"));
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'batchTimeInterval' for member", ((JSONObject)arrAsyncEventQueues.get(0)).has("batchTimeInterval"));
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'batchConflationEnabled' for member", ((JSONObject)arrAsyncEventQueues.get(0)).has("batchConflationEnabled"));
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'asyncEventListener' for member", ((JSONObject)arrAsyncEventQueues.get(0)).has("asyncEventListener"));
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'queueSize' for member", ((JSONObject)arrAsyncEventQueues.get(0)).has("queueSize"));
} finally {
response.close();
}
} catch(Exception failed) {
logException(failed);
Assert.fail("Exception ! ");
}
} else {
Assert.fail("MemberGatewayHubServiceTest :: No Http connection was established.");
}
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE END : ASYNC EVENT QUEUE PROPERTIES IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE ------\n");
}
/**
*
* Tests that response is for same region
*
* Test method for {@link com.vmware.gemfire.tools.pulse.internal.service.MemberGatewayHubService#execute(javax.servlet.http.HttpServletRequest)}.
*
* @author rbhandekar
*/
@Test
public void testResponseNoAsyncEventQueues() {
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE BEGIN : NO ASYNC EVENT QUEUES IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE------");
if(httpclient != null){
try{
HttpUriRequest pulseupdate = RequestBuilder.post()
.setUri(new URI(PULSE_UPDATE_URL))
.addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_6_VALUE)
.build();
CloseableHttpResponse response = httpclient.execute(pulseupdate);
try {
HttpEntity entity = response.getEntity();
System.out.println("MemberGatewayHubServiceTest :: HTTP request status : " + response.getStatusLine());
BufferedReader respReader = new BufferedReader(new InputStreamReader(entity.getContent()));
StringWriter sw = new StringWriter();
PrintWriter pw = new PrintWriter(sw);
String sz = null;
while((sz = respReader.readLine()) != null){
pw.print(sz);
}
String jsonResp = sw.getBuffer().toString();
System.out.println("MemberGatewayHubServiceTest :: JSON response returned : " + jsonResp);
EntityUtils.consume(entity);
JSONObject jsonObj = new JSONObject(jsonResp);
JSONObject memberGatewayHubObj = jsonObj.getJSONObject("MemberGatewayHub");
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for MemberGatewayHub", memberGatewayHubObj);
Assert.assertTrue("MemberGatewayHubServiceTest :: Server did not return 'asyncEventQueues' for member", memberGatewayHubObj.has("asyncEventQueues"));
JSONArray arrAsyncEventQueues = memberGatewayHubObj.getJSONArray("asyncEventQueues");
Assert.assertNotNull("MemberGatewayHubServiceTest :: Server returned null response for 'asyncEventQueues'", arrAsyncEventQueues);
Assert.assertTrue("MemberGatewayHubServiceTest :: Server returned non-empty array for member 'pnq-visitor2' which has no event queues", (arrAsyncEventQueues.length() == 0));
} finally {
response.close();
}
} catch(Exception failed) {
logException(failed);
Assert.fail("Exception ! ");
}
} else {
Assert.fail("MemberGatewayHubServiceTest :: No Http connection was established.");
}
System.out.println("MemberGatewayHubServiceTest :: ------TESTCASE END : NO ASYNC EVENT QUEUES PROPERTIES IN RESPONSE CHECK FOR MEMBER GATEWAY HUB SERVICE ------\n");
}
}