try {
CNSSubscriptionDeliveryPolicy subpolicy = new CNSSubscriptionDeliveryPolicy();
JSONObject json = new JSONObject(jsonStr);
subpolicy.update(json);
CNSRetryPolicy hRetryPolicy = subpolicy.getHealthyRetryPolicy();
logger.debug("hRetryPolicy is: " + hRetryPolicy.toString());
assertTrue(hRetryPolicy.getMinDelayTarget() == 12);
assertTrue(hRetryPolicy.getMaxDelayTarget() == 13);
assertTrue(hRetryPolicy.getNumRetries() == 43);
assertTrue(hRetryPolicy.getNumMaxDelayRetries() == 23);
assertTrue(hRetryPolicy.getNumMinDelayRetries() == 20);
assertTrue(hRetryPolicy.getBackOffFunction() == CnsBackoffFunction.arithmetic);
CNSThrottlePolicy tPolicy = subpolicy.getThrottlePolicy();
assertTrue(tPolicy.getMaxReceivesPerSecond() == 7);
CNSRetryPolicy sRetryPolicy = subpolicy.getSicklyRetryPolicy();
assertTrue(sRetryPolicy == null);
json = new JSONObject(jsonStr2);
subpolicy.update(json);
hRetryPolicy = subpolicy.getHealthyRetryPolicy();
assertTrue(hRetryPolicy != null);
logger.debug("hRetryPolicy is: " + hRetryPolicy.toString());
assertTrue(hRetryPolicy.getMinDelayTarget() == 20);
assertTrue(hRetryPolicy.getMaxDelayTarget() == 20);
assertTrue(hRetryPolicy.getNumRetries() == 3);
assertTrue(hRetryPolicy.getNumMaxDelayRetries() == 0);
assertTrue(hRetryPolicy.getNumMinDelayRetries() == 0);
assertTrue(hRetryPolicy.getBackOffFunction() == CnsBackoffFunction.linear);
tPolicy = subpolicy.getThrottlePolicy();
assertTrue(tPolicy.getMaxReceivesPerSecond() == null);
sRetryPolicy = subpolicy.getSicklyRetryPolicy();
logger.debug("sRetryPolicy is: " + sRetryPolicy.toString());
assertTrue(sRetryPolicy.getMinDelayTarget() == 32);
assertTrue(sRetryPolicy.getMaxDelayTarget() == 33);
assertTrue(sRetryPolicy.getNumRetries() == 99);
assertTrue(sRetryPolicy.getNumMaxDelayRetries() == 32);
assertTrue(sRetryPolicy.getNumMinDelayRetries() == 31);
assertTrue(sRetryPolicy.getNumNoDelayRetries() == 33);
assertTrue(sRetryPolicy.getBackOffFunction() == CnsBackoffFunction.exponential);
boolean exceptionOccured = false;
json = new JSONObject(jsonStr4);
try {