@Override public Subscription confirmSubscription(ConfirmSubscriptionRequest request, ResultCapture<ConfirmSubscriptionResult> extractor) { ActionResult result = resource.performAction("ConfirmSubscription", request, extractor); if (result == null) return null; return new SubscriptionImpl(result.getResource()); }
@Override public Subscription confirmSubscription(String token, ResultCapture<ConfirmSubscriptionResult> extractor) { ConfirmSubscriptionRequest request = new ConfirmSubscriptionRequest() .withToken(token); return confirmSubscription(request, extractor); }
@Override public Subscription confirmSubscription(String authenticateOnUnsubscribe, String token) { return confirmSubscription(authenticateOnUnsubscribe, token, (ResultCapture<ConfirmSubscriptionResult>)null); }
@Override public Subscription confirmSubscription(String authenticateOnUnsubscribe, String token, ResultCapture<ConfirmSubscriptionResult> extractor) { ConfirmSubscriptionRequest request = new ConfirmSubscriptionRequest() .withAuthenticateOnUnsubscribe(authenticateOnUnsubscribe) .withToken(token); return confirmSubscription(request, extractor); }
@Test public void testSubscribeConfirmListUnsubscribe_shouldCreateVerifyListAndRemoveSubscription() { mockSns(new MockParameters()); // create topic CreateTopicResult topicResult = sns.createTopic(new CreateTopicRequest().withName("important-topic")); // subscribe to first topic SubscribeResult subscribeResult = sns.subscribe(new SubscribeRequest().withTopicArn(topicResult.getTopicArn()) .withProtocol("sqs").withEndpoint("arn:aws:sqs:us-east-1:123456789012:queue1")); assertNotNull("verify subscription ARN is created", subscribeResult.getSubscriptionArn()); // create second topic and subscribe to that one CreateTopicResult secondTopicResult = sns.createTopic(new CreateTopicRequest().withName("someOther-topic")); sns.subscribe(new SubscribeRequest().withTopicArn(secondTopicResult.getTopicArn()) .withProtocol("sqs").withEndpoint("arn:aws:sqs:us-east-1:564654654:queue7")); // confirm first subscription ConfirmSubscriptionResult confirmResultAuth = sns.confirmSubscription(new ConfirmSubscriptionRequest() .withAuthenticateOnUnsubscribe("true").withToken("gold-token").withTopicArn(topicResult.getTopicArn())); assertNotNull("verify auth confirmation with responded topic arn", confirmResultAuth.getSubscriptionArn()); ConfirmSubscriptionResult confirmResultNoAuth = sns.confirmSubscription(new ConfirmSubscriptionRequest() .withAuthenticateOnUnsubscribe("false").withToken("gold-token").withTopicArn(topicResult.getTopicArn())); assertNotNull("verify no auth confirmation with responded topic arn", confirmResultNoAuth.getSubscriptionArn()); // list all subscriptions ListSubscriptionsResult allSubs = sns.listSubscriptions(); assertEquals("verify correct total subscription count", 2, allSubs.getSubscriptions().size()); com.amazonaws.services.sns.model.Subscription firstSub = allSubs.getSubscriptions().stream().filter(sub -> sub.getTopicArn().equals(topicResult.getTopicArn())).findFirst().get(); assertEquals("verify the correct subscription arn", subscribeResult.getSubscriptionArn(), firstSub.getSubscriptionArn()); assertEquals("verify the correct subscription topic", topicResult.getTopicArn(), firstSub.getTopicArn()); assertEquals("verify the correct subscription protocol", "sqs", firstSub.getProtocol()); assertEquals("verify the correct subscription endpoint", "arn:aws:sqs:us-east-1:123456789012:queue1", firstSub.getEndpoint()); assertNotNull("verify the correct subscription owner", firstSub.getOwner()); // list subscriptions of first topic ListSubscriptionsByTopicResult topicsSubscriptions = sns.listSubscriptionsByTopic(new ListSubscriptionsByTopicRequest(topicResult.getTopicArn())); assertEquals("verify that the one subscription is contained in list", 1, topicsSubscriptions.getSubscriptions().size()); assertEquals("verify the correct subscription arn", subscribeResult.getSubscriptionArn(), topicsSubscriptions.getSubscriptions().get(0).getSubscriptionArn()); assertEquals("verify the correct subscription topic", topicResult.getTopicArn(), topicsSubscriptions.getSubscriptions().get(0).getTopicArn()); assertEquals("verify the correct subscription protocol", "sqs", topicsSubscriptions.getSubscriptions().get(0).getProtocol()); assertEquals("verify the correct subscription endpoint", "arn:aws:sqs:us-east-1:123456789012:queue1", topicsSubscriptions.getSubscriptions().get(0).getEndpoint()); assertNotNull("verify the correct subscription owner", topicsSubscriptions.getSubscriptions().get(0).getOwner()); // unsubscribe first topic assertNotNull(sns.unsubscribe(subscribeResult.getSubscriptionArn())); // check if really unsubscribed ListSubscriptionsByTopicResult subsToFirstTopicAfterUnsubscribe = sns.listSubscriptionsByTopic(new ListSubscriptionsByTopicRequest(topicResult.getTopicArn())); assertEquals("topic should be gone", 0, subsToFirstTopicAfterUnsubscribe.getSubscriptions().size()); // cleanup sns.deleteTopic(topicResult.getTopicArn()); sns.deleteTopic(secondTopicResult.getTopicArn()); }
@Override public ConfirmSubscriptionResult confirmSubscription(ConfirmSubscriptionRequest confirmSubscriptionRequest) throws AmazonServiceException, AmazonClientException { throw new UnsupportedOperationException(); }
@Override public Subscription confirmSubscription(String token) { return confirmSubscription(token, (ResultCapture<ConfirmSubscriptionResult>)null); }
/** * Performs the <code>ConfirmSubscription</code> action and use a * ResultCapture to retrieve the low-level client response. * * <p> * The following request parameters will be populated from the data of this * <code>Topic</code> resource, and any conflicting parameter value set in * the request will be overridden: * <ul> * <li> * <b><code>TopicArn</code></b> * - mapped from the <code>Arn</code> identifier. * </li> * </ul> * * <p> * * @return The <code>Subscription</code> resource object associated with the * result of this action. * @see ConfirmSubscriptionRequest */ com.amazonaws.resources.sns.Subscription confirmSubscription( ConfirmSubscriptionRequest request, ResultCapture<ConfirmSubscriptionResult> extractor);
/** * The convenient method form for the <code>ConfirmSubscription</code> * action. * * @see #confirmSubscription(ConfirmSubscriptionRequest, ResultCapture) */ com.amazonaws.resources.sns.Subscription confirmSubscription(String token, ResultCapture<ConfirmSubscriptionResult> extractor);
/** * The convenient method form for the <code>ConfirmSubscription</code> * action. * * @see #confirmSubscription(ConfirmSubscriptionRequest, ResultCapture) */ com.amazonaws.resources.sns.Subscription confirmSubscription(String authenticateOnUnsubscribe, String token, ResultCapture<ConfirmSubscriptionResult> extractor);