Package com.comcast.cns.test.unit

Source Code of com.comcast.cns.test.unit.CNSTopicAttributeTest

/**
* Copyright 2012 Comcast Corporation
*
* 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.
*/
package com.comcast.cns.test.unit;

import static org.junit.Assert.*;

import org.json.JSONObject;
import org.junit.Test;

import com.amazonaws.services.sns.model.GetTopicAttributesRequest;
import com.amazonaws.services.sns.model.GetTopicAttributesResult;
import com.amazonaws.services.sns.model.SetTopicAttributesRequest;
import com.comcast.cmb.test.tools.CMBAWSBaseTest;

public class CNSTopicAttributeTest extends CMBAWSBaseTest {

  @Test
  public void testGetAttributes() {

    try {
     
      String topicArn = getTopic(1, USR.USER1);
     
      GetTopicAttributesResult results = cns1.getTopicAttributes(new GetTopicAttributesRequest(topicArn));
     
      assertTrue("Default Effective Delivery Policy missing", results.getAttributes().get("EffectiveDeliveryPolicy") != null);

      String deliveryPolicy = results.getAttributes().get("EffectiveDeliveryPolicy");
      JSONObject dpJson = new JSONObject(deliveryPolicy);
     
      logger.info("Delivery Policy:" + deliveryPolicy);

      assertTrue("Default HTTP Policy Missing", dpJson.has("http"));
     
      dpJson = dpJson.getJSONObject("http");

      assertTrue("Default Effective Default Healty Delivery Policy missing", dpJson.has("defaultHealthyRetryPolicy"));
      JSONObject dhrp = dpJson.getJSONObject("defaultHealthyRetryPolicy");
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("backoffFunction"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getString("backoffFunction").equals("linear"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("numMinDelayRetries"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("numMinDelayRetries") == 0);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("numMaxDelayRetries"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("numMaxDelayRetries") == 0);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("numRetries"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("numRetries") == 3);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("minDelayTarget"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("minDelayTarget") == 20);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("numNoDelayRetries"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("numNoDelayRetries") == 0);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("maxDelayTarget"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("maxDelayTarget") == 20);

    } catch (Exception ex) {
     
      logger.error("test failed", ex);
      fail(ex.getMessage());

   
  }

  @Test
  public void testSetGetAttributes() {

    try {
     
      String topicArn = this.getTopic(1, USR.USER1);

      String jsonStr2 = "{" +
      "\"http\":" +
      "{\"disableSubscriptionOverrides\":true," +
      "\"defaultSicklyRetryPolicy\":null," +
      "\"defaultHealthyRetryPolicy\":" +        
      "{"+
      "\"minDelayTarget\":1,"+
      "\"maxDelayTarget\":2,"+
      "\"numRetries\":17,"+
      "\"numMaxDelayRetries\": 4,"+
      "\"numMinDelayRetries\": 6,"+
      "\"numNoDelayRetries\": 7,"+
      "\"backoffFunction\": \"geometric\""+
      "}," +
      "\"defaultThrottlePolicy\":null" +
      "}}";
     
      cns1.setTopicAttributes(new SetTopicAttributesRequest(topicArn, "DeliveryPolicy", jsonStr2));
      GetTopicAttributesResult results = cns1.getTopicAttributes(new GetTopicAttributesRequest(topicArn));
      assertTrue("Default Effective Delivery Policy missing", results.getAttributes().get("EffectiveDeliveryPolicy") != null);

      String deliveryPolicy = results.getAttributes().get("EffectiveDeliveryPolicy");
      JSONObject dpJson = new JSONObject(deliveryPolicy);
     
      logger.info("Delivery Policy:" + deliveryPolicy);

      assertTrue("Default HTTP Policy Missing", dpJson.has("http"));
      dpJson = dpJson.getJSONObject("http");

      assertTrue("Default Effective Default Healty Delivery Policy missing", dpJson.has("defaultHealthyRetryPolicy"));
      JSONObject dhrp = dpJson.getJSONObject("defaultHealthyRetryPolicy");
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("backoffFunction"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getString("backoffFunction").equals("geometric"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("numMinDelayRetries"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("numMinDelayRetries") == 6);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("numMaxDelayRetries"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("numMaxDelayRetries") == 4);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("numRetries"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("numRetries") == 17);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("minDelayTarget"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("minDelayTarget") == 1);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("numNoDelayRetries"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("numNoDelayRetries") == 7);
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.has("maxDelayTarget"));
      assertTrue("Default Effective Default Healty Delivery Policy setup wrong", dhrp.getInt("maxDelayTarget") == 2);

    } catch (Exception ex) {
      logger.error("test failed", ex);
      fail(ex.getMessage());
    }
  }

  @Test
  public void testDisplayName() {
   
    try {
     
      String topicArn = this.getTopic(1, USR.USER1);
      String displayName = "My Display Name !@#$%^&*()-+";
      cns1.setTopicAttributes(new SetTopicAttributesRequest(topicArn, "DisplayName", displayName));
      GetTopicAttributesResult results = cns1.getTopicAttributes(new GetTopicAttributesRequest(topicArn));
      assertTrue("Display name is " + results.getAttributes().get("DisplayName") + ", expected: " + displayName, results.getAttributes().get("DisplayName").equals(displayName));

    } catch (Exception ex) {
      logger.error("test failed", ex);
      fail(ex.getMessage());
    }
  }
}
TOP

Related Classes of com.comcast.cns.test.unit.CNSTopicAttributeTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.