com.vmware.gemfire.tools.pulse.tests.junit.ClusterSelectedRegionsMemberServiceTest.java Source code

Java tutorial

Introduction

Here is the source code for com.vmware.gemfire.tools.pulse.tests.junit.ClusterSelectedRegionsMemberServiceTest.java

Source

/*
 *
 * Licensed to the Apache Software Foundation (ASF) under one or more
 * contributor license agreements.  See the NOTICE file distributed with
 * this work for additional information regarding copyright ownership.
 * The ASF licenses this file to You 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.
 *
 */
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 java.util.Iterator;

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.*;

import com.vmware.gemfire.tools.pulse.internal.json.JSONObject;

/**
 * JUnit Tests for ClusterSelectedRegionsMemberService in the back-end server for region detail page
 *
 *
 */
@Ignore
public class ClusterSelectedRegionsMemberServiceTest extends BaseServiceTest {

    /**
     * @throws java.lang.Exception
     *
     */
    @BeforeClass
    public static void setUpBeforeClass() throws Exception {
        doLogin();
        System.out.println("\n\nClusterSelectedRegionsMemberServiceTest :: Setup done");
    }

    /**
     * @throws java.lang.Exception
     *
     */
    @AfterClass
    public static void tearDownAfterClass() throws Exception {
        doLogout();
        System.out.println("ClusterSelectedRegionsMemberServiceTest :: Teardown done");
    }

    /**
     * @throws java.lang.Exception
     */
    @Override
    @Before
    public void setUp() throws Exception {
        System.out.println("running setup -- ClusterSelectedRegionsMemberServiceTest");
    }

    /**
     * @throws java.lang.Exception
     */
    @Override
    @After
    public void tearDown() throws Exception {
        System.out.println("running teardown -- ClusterSelectedRegionsMemberServiceTest");
    }

    /**
     * Tests that service returns json object
     *
     */
    @Test
    public void testResponseNotNull() {
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE BEGIN : NULL RESPONSE CHECK FOR CLUSTER REGION MEMBERS------");
        if (httpclient != null) {
            try {
                HttpUriRequest pulseupdate = RequestBuilder.post().setUri(new URI(PULSE_UPDATE_URL))
                        .addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_3_VALUE).build();
                CloseableHttpResponse response = httpclient.execute(pulseupdate);
                try {
                    HttpEntity entity = response.getEntity();

                    System.out.println("ClusterSelectedRegionsMemberServiceTest :: 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(
                            "ClusterSelectedRegionsMemberServiceTest :: JSON response returned : " + jsonResp);
                    EntityUtils.consume(entity);

                    JSONObject jsonObj = new JSONObject(jsonResp);
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null response for ClusterSelectedRegionsMember",
                            jsonObj.getJSONObject("ClusterSelectedRegionsMember"));
                } finally {
                    response.close();
                }
            } catch (Exception failed) {
                logException(failed);
                Assert.fail("Exception ! ");
            }
        } else {
            Assert.fail("ClusterSelectedRegionsMemberServiceTest :: No Http connection was established.");
        }
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE END : NULL RESPONSE CHECK FOR CLUSTER REGION MEMBERS------");
    }

    /**
    *
    * Tests that response is for same logged in user
    *
    */
    @Test
    public void testResponseUsername() {
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE BEGIN : NULL USERNAME IN RESPONSE CHECK FOR CLUSTER REGION MEMBERS------");
        if (httpclient != null) {
            try {
                HttpUriRequest pulseupdate = RequestBuilder.post().setUri(new URI(PULSE_UPDATE_URL))
                        .addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_3_VALUE).build();
                CloseableHttpResponse response = httpclient.execute(pulseupdate);
                try {
                    HttpEntity entity = response.getEntity();

                    System.out.println("ClusterSelectedRegionsMemberServiceTest :: 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(
                            "ClusterSelectedRegionsMemberServiceTest :: JSON response returned : " + jsonResp);
                    EntityUtils.consume(entity);

                    JSONObject jsonObj = new JSONObject(jsonResp);
                    JSONObject clusterSelectedRegionObj = jsonObj.getJSONObject("ClusterSelectedRegionsMember");
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null response for ClusterSelectedRegionsMember",
                            clusterSelectedRegionObj);
                    Assert.assertTrue(
                            "ClusterSelectedRegionsMemberServiceTest :: Server did not return 'userName' in request",
                            clusterSelectedRegionObj.has("userName"));
                    String szUser = clusterSelectedRegionObj.getString("userName");
                    Assert.assertEquals(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned wrong user name. Expected was admin. Server returned = "
                                    + szUser,
                            szUser, "admin");
                } finally {
                    response.close();
                }
            } catch (Exception failed) {
                logException(failed);
                Assert.fail("Exception ! ");
            }
        } else {
            Assert.fail("ClusterSelectedRegionsMemberServiceTest :: No Http connection was established.");
        }
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE END : NULL USERNAME IN RESPONSE CHECK FOR CLUSTER REGION MEMBERS------");
    }

    /**
    *
    * Tests that response is for same region
    *
    *
    */
    @Test
    public void testResponseRegionOnMemberInfoMatches() {
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE BEGIN : MEMBER INFO RESPONSE CHECK FOR CLUSTER REGION MEMBERS------");
        if (httpclient != null) {
            try {
                HttpUriRequest pulseupdate = RequestBuilder.post().setUri(new URI(PULSE_UPDATE_URL))
                        .addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_3_VALUE).build();
                CloseableHttpResponse response = httpclient.execute(pulseupdate);
                try {
                    HttpEntity entity = response.getEntity();

                    System.out.println("ClusterSelectedRegionsMemberServiceTest :: 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(
                            "ClusterSelectedRegionsMemberServiceTest :: JSON response returned : " + jsonResp);
                    EntityUtils.consume(entity);

                    JSONObject jsonObj = new JSONObject(jsonResp);
                    JSONObject clusterSelectedRegionObj = jsonObj.getJSONObject("ClusterSelectedRegionsMember");
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null response for ClusterSelectedRegionsMember",
                            clusterSelectedRegionObj);
                    JSONObject jsonObjRegion = clusterSelectedRegionObj.getJSONObject("selectedRegionsMembers");
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null response for selectedRegionsMembers",
                            jsonObjRegion);
                    Iterator<String> itrMemberNames = jsonObjRegion.keys();
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null region on member info",
                            itrMemberNames);
                    while (itrMemberNames.hasNext()) {
                        String szMemberName = itrMemberNames.next();
                        Assert.assertNotNull(
                                "ClusterSelectedRegionsMemberServiceTest :: Server returned null member name",
                                szMemberName);
                        Assert.assertTrue("Server did not return member details", jsonObjRegion.has(szMemberName));
                        JSONObject jsonMemberObj = jsonObjRegion.getJSONObject(szMemberName);

                        Assert.assertTrue(
                                "ClusterSelectedRegionsMemberServiceTest :: Server did not return 'regionFullPath' of region on member",
                                jsonMemberObj.has("regionFullPath"));
                        String szPath = jsonMemberObj.getString("regionFullPath");
                        Assert.assertEquals(
                                "ClusterSelectedRegionsMemberServiceTest :: Server returned wrong region path for region on member",
                                szPath, "/GlobalVilage_2/GlobalVilage_9");
                    }
                } finally {
                    response.close();
                }
            } catch (Exception failed) {
                logException(failed);
                Assert.fail("Exception ! ");
            }
        } else {
            Assert.fail("ClusterSelectedRegionsMemberServiceTest :: No Http connection was established.");
        }
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE END : MEMBER INFO RESPONSE CHECK FOR CLUSTER REGION MEMBERS------");
    }

    /**
    *
    * Tests that response is for same region
    *
    *
    */
    @Test
    public void testResponseNonExistentRegion() {
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE BEGIN : NON-EXISTENT REGION CHECK FOR CLUSTER REGION MEMBERS------");
        if (httpclient != null) {
            try {
                System.out.println("Test for non-existent region : /Rubbish");
                HttpUriRequest pulseupdate = RequestBuilder.post().setUri(new URI(PULSE_UPDATE_URL))
                        .addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_4_VALUE).build();
                CloseableHttpResponse response = httpclient.execute(pulseupdate);
                try {
                    HttpEntity entity = response.getEntity();

                    System.out.println("ClusterSelectedRegionsMemberServiceTest :: 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(
                            "ClusterSelectedRegionsMemberServiceTest :: JSON response returned : " + jsonResp);
                    EntityUtils.consume(entity);

                    JSONObject jsonObj = new JSONObject(jsonResp);
                    JSONObject clusterSelectedRegionObj = jsonObj.getJSONObject("ClusterSelectedRegionsMember");
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null for ClusterSelectedRegionsMember",
                            clusterSelectedRegionObj);
                    JSONObject jsonObjRegion = clusterSelectedRegionObj.getJSONObject("selectedRegionsMembers");
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null for selectedRegionsMembers",
                            jsonObjRegion);
                    Assert.assertTrue(
                            "ClusterSelectedRegionsMemberServiceTest :: Server did not return error on non-existent region",
                            jsonObjRegion.has("errorOnRegion"));
                } finally {
                    response.close();
                }
            } catch (Exception failed) {
                logException(failed);
                Assert.fail("Exception ! ");
            }
        } else {
            Assert.fail("ClusterSelectedRegionsMemberServiceTest :: No Http connection was established.");
        }
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE END : NON-EXISTENT REGION CHECK FOR CLUSTER REGION MEMBERS------");
    }

    /**
    *
    * Tests that response is for same region
    *
    *
    */
    @Test
    public void testResponseRegionOnMemberAccessor() {
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE BEGIN : ACCESSOR RESPONSE CHECK FOR CLUSTER REGION MEMBERS------");
        if (httpclient != null) {
            try {
                HttpUriRequest pulseupdate = RequestBuilder.post().setUri(new URI(PULSE_UPDATE_URL))
                        .addParameter(PULSE_UPDATE_PARAM, PULSE_UPDATE_3_VALUE).build();
                CloseableHttpResponse response = httpclient.execute(pulseupdate);
                try {
                    HttpEntity entity = response.getEntity();

                    System.out.println("ClusterSelectedRegionsMemberServiceTest :: 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(
                            "ClusterSelectedRegionsMemberServiceTest :: JSON response returned : " + jsonResp);
                    EntityUtils.consume(entity);

                    JSONObject jsonObj = new JSONObject(jsonResp);
                    JSONObject clusterSelectedRegionObj = jsonObj.getJSONObject("ClusterSelectedRegionsMember");
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null response for ClusterSelectedRegionsMember",
                            clusterSelectedRegionObj);
                    JSONObject jsonObjRegion = clusterSelectedRegionObj.getJSONObject("selectedRegionsMembers");
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null response for selectedRegionsMembers",
                            jsonObjRegion);
                    Iterator<String> itrMemberNames = jsonObjRegion.keys();
                    Assert.assertNotNull(
                            "ClusterSelectedRegionsMemberServiceTest :: Server returned null region on member info",
                            itrMemberNames);
                    while (itrMemberNames.hasNext()) {
                        String szMemberName = itrMemberNames.next();
                        Assert.assertNotNull(
                                "ClusterSelectedRegionsMemberServiceTest :: Server returned null member name",
                                szMemberName);
                        Assert.assertTrue("Server did not return member details", jsonObjRegion.has(szMemberName));
                        JSONObject jsonMemberObj = jsonObjRegion.getJSONObject(szMemberName);

                        Assert.assertTrue(
                                "ClusterSelectedRegionsMemberServiceTest :: Server did not return 'accessor' of region on member",
                                jsonMemberObj.has("accessor"));
                        String szAccessor = jsonMemberObj.getString("accessor");
                        Assert.assertTrue(
                                "ClusterSelectedRegionsMemberServiceTest :: Server returned non-boolean value for accessor attribute",
                                ((szAccessor.equalsIgnoreCase("True")) || (szAccessor.equalsIgnoreCase("False"))));
                    }
                } finally {
                    response.close();
                }
            } catch (Exception failed) {
                logException(failed);
                Assert.fail("Exception ! ");
            }
        } else {
            Assert.fail("ClusterSelectedRegionsMemberServiceTest :: No Http connection was established.");
        }
        System.out.println(
                "ClusterSelectedRegionsMemberServiceTest ::  ------TESTCASE END : ACCESSOR RESPONSE CHECK FOR CLUSTER REGION MEMBERS------");
    }
}