Java 类com.amazonaws.services.sns.model.ListTopicsResult 实例源码

项目:unitstack    文件:MockSnsTest.java   
@Test
public void testCreateListDeleteTopic_shouldCreateReturnAndDelete() {
  mockSns(new MockParameters());

  ListTopicsResult listTopicResultBefore = sns.listTopics();
  assertEquals("topic list should contain zero items before insert",0,listTopicResultBefore.getTopics().size());

  CreateTopicRequest create = new CreateTopicRequest()
      .withName("major-topic");
  CreateTopicResult createResult = sns.createTopic(create);
  String topicArn = createResult.getTopicArn();
  assertNotNull("verify returned topic ARN", topicArn);

  ListTopicsResult listTopicResult = sns.listTopics();
  assertEquals("after insert topic list should contain 1 item",1,listTopicResult.getTopics().size());
  assertEquals("after insert topic list should contain before inserted topic arn", topicArn, 
      listTopicResult.getTopics().get(0).getTopicArn());

  DeleteTopicResult deleteResult = sns.deleteTopic(topicArn);
  assertNotNull(deleteResult);

  ListTopicsResult listTopicsAfterDeletion = sns.listTopics();
  assertEquals("topic list should contain zero items after deletion",0,listTopicsAfterDeletion.getTopics().size());
}
项目:Tank    文件:CloudwatchInstance.java   
/**
 * 
 * @param email
 * @return
 */
public String getOrCreateNotification(String email) {
    String ret = null;
    String topicName = getTopicName(email);
    String nextToken = null;
    do {
        ListTopicsResult listTopics = asyncSnsClient.listTopics(nextToken);
        List<Topic> topics = listTopics.getTopics();
        for (Topic s : topics) {
            if (s.getTopicArn().endsWith(topicName)) {
                ret = s.getTopicArn();
                break;
            }
        }
        nextToken = listTopics.getNextToken();
    } while (ret == null && nextToken != null);
    if (ret == null) {
        // create the topic and the subscription
        CreateTopicResult topic = asyncSnsClient.createTopic(topicName);
        SubscribeRequest req = new SubscribeRequest(topic.getTopicArn(), "email", email);
        asyncSnsClient.subscribeAsync(req);
        ret = topic.getTopicArn();
    }

    return ret;
}
项目:Cheddar    文件:DefaultSnsTopicResourceFactoryTest.java   
@Test
public void shouldCreateSnsTopicResource_withName() throws Exception {
    // Given
    final String name = randomString();
    final String topicArn = topicArnForName(name);
    final List<Topic> topics = Arrays.asList(randomTopic(), randomTopic(), topicForArn(topicArn), randomTopic());
    final ListTopicsResult mockListTopicsResult = mock(ListTopicsResult.class);
    when(mockListTopicsResult.getTopics()).thenReturn(topics);
    when(mockListTopicsResult.getNextToken()).thenReturn(null);
    final String nextToken = null;
    when(mockAmazonSnsClient.listTopics(nextToken)).thenReturn(mockListTopicsResult);
    final SnsTopicResource mockSnsTopicResource = mock(SnsTopicResource.class);
    whenNew(SnsTopicResource.class).withArguments(name, topicArn, mockAmazonSnsClient)
            .thenReturn(mockSnsTopicResource);

    // When
    final SnsTopicResource result = factory.createSnsTopicResource(name);

    // Then
    assertSame(mockSnsTopicResource, result);
}
项目:spring-cloud-aws    文件:DynamicTopicDestinationResolverTest.java   
@Test
public void resolveDestination_withExistentTopic_returnsTopicArnFoundWhileListingTopic() throws Exception {
    // Arrange
    String topicArn = "arn:aws:sns:eu-west:123456789012:test";

    AmazonSNS sns = mock(AmazonSNS.class);
    when(sns.listTopics(new ListTopicsRequest(null))).thenReturn(new ListTopicsResult().withTopics(new Topic().withTopicArn(topicArn)));

    DynamicTopicDestinationResolver resolver = new DynamicTopicDestinationResolver(sns);

    // Act
    String resolvedDestinationName = resolver.resolveDestination("test");

    // Assert
    assertEquals(topicArn, resolvedDestinationName);
}
项目:spring-cloud-aws    文件:DynamicTopicDestinationResolverTest.java   
@Test
public void resolveDestination_withExistentTopicAndMarker_returnsTopicArnFoundWhileListingTopic() throws Exception {
    // Arrange

    AmazonSNS sns = mock(AmazonSNS.class);
    when(sns.listTopics(new ListTopicsRequest(null))).thenReturn(new ListTopicsResult().withNextToken("mark"));

    String topicArn = "arn:aws:sns:eu-west:123456789012:test";
    when(sns.listTopics(new ListTopicsRequest("mark"))).thenReturn(new ListTopicsResult().withTopics(new Topic().withTopicArn(topicArn)));

    DynamicTopicDestinationResolver resolver = new DynamicTopicDestinationResolver(sns);

    // Act
    String resolvedDestinationName = resolver.resolveDestination("test");

    // Assert
    assertEquals(topicArn, resolvedDestinationName);
}
项目:spring-cloud-aws    文件:DynamicTopicDestinationResolverTest.java   
@Test
public void resolveDestination_withResourceIdResolver_shouldCallIt() throws Exception {
    // Arrange
    String physicalTopicName = "arn:aws:sns:eu-west:123456789012:myTopic";
    String logicalTopicName = "myTopic";

    ResourceIdResolver resourceIdResolver = mock(ResourceIdResolver.class);
    when(resourceIdResolver.resolveToPhysicalResourceId(logicalTopicName)).thenReturn(physicalTopicName);

    AmazonSNS sns = mock(AmazonSNS.class);
    when(sns.listTopics(new ListTopicsRequest(null))).thenReturn(new ListTopicsResult().withTopics(new Topic().withTopicArn(physicalTopicName)));

    DynamicTopicDestinationResolver resolver = new DynamicTopicDestinationResolver(sns, resourceIdResolver);

    // Assert
    String resolvedDestinationName = resolver.resolveDestination(logicalTopicName);

    // Assert
    assertEquals(physicalTopicName, resolvedDestinationName);
}
项目:spring-cloud-aws    文件:NotificationMessagingTemplateTest.java   
@Test
public void send_validTextMessage_usesTopicChannel() throws Exception {
    // Arrange
    AmazonSNS amazonSns = mock(AmazonSNS.class);
    NotificationMessagingTemplate notificationMessagingTemplate = new NotificationMessagingTemplate(amazonSns);
    String physicalTopicName = "arn:aws:sns:eu-west:123456789012:test";
    when(amazonSns.listTopics(new ListTopicsRequest(null))).thenReturn(new ListTopicsResult().withTopics(new Topic().withTopicArn(physicalTopicName)));
    notificationMessagingTemplate.setDefaultDestinationName(physicalTopicName);

    // Act
    notificationMessagingTemplate.send(MessageBuilder.withPayload("Message content").build());

    // Assert
    verify(amazonSns).publish(new PublishRequest(physicalTopicName,
            "Message content", null).withMessageAttributes(isNotNull()));
}
项目:cfnassist    文件:SNSNotificationSender.java   
public String getTopicARN() {
    try {
        if (topicANR.isEmpty()) {
            ListTopicsResult topics = snsClient.listTopics();
            for(Topic topic : topics.getTopics()) {
                String foundArn = topic.getTopicArn();
                if (foundArn.contains(TOPIC_NAME)) {
                    logger.info("Found notification topic for SNS, ARN is: " + foundArn);
                    topicANR =  foundArn;
                    break;
                }
            }
        }
        if (topicANR.isEmpty()) {
            logger.info("Did not find notification topic for SNS, to receive updates create topic: " + TOPIC_NAME);
        }
        return topicANR;
    } 
    catch (AuthorizationErrorException authException) {
        logger.error("Did not send SNS notification. You may need to update permissions for user via IAM. Exception was " + authException);
        return "";
    }
}
项目:aws-java-sdk    文件:AmazonSNSFakeListTopicsTest.java   
@Test
public void listTopicsFromEmptyRepository() {
    final ListTopicsResult result = sns.listTopics();

    assertThat(result.getNextToken()).isNull();
    assertThat(result.getTopics()).isEmpty();
}
项目:aws-java-sdk    文件:AmazonSNSFakeListTopicsTest.java   
@Test
public void listSingleTopic() {
    sns.createTopic("test");
    final ListTopicsResult result = sns.listTopics();

    assertThat(result.getNextToken()).isNull();
    assertThat(arnValues(result.getTopics())).containsExactly("arn:aws:sns:us-east-1:12345:test");
}
项目:aws-java-sdk    文件:AmazonSNSFakeListTopicsTest.java   
@Test
public void listMultiple() {
    final String[] topics = new String[5];
    for (int i = 0; i < 5; i++)
        topics[i] = sns.createTopic("topic" + i).getTopicArn();
    final ListTopicsResult result = sns.listTopics();

    assertThat(result.getNextToken()).isNull();
    assertThat(arnValues(result.getTopics())).containsExactly(topics);
}
项目:aws-java-sdk    文件:AmazonSNSFakeListTopicsTest.java   
@Test
public void topicsAreReturnedInChunksOf100() {
    for (int i = 0; i < 120; i++)
        sns.createTopic("topic" + i);
    ListTopicsResult result = sns.listTopics();

    final String token = result.getNextToken();
    assertThat(token).isNotNull();
    assertThat(arnValues(result.getTopics()))
            .hasSize(100)
            .contains(
                    "arn:aws:sns:us-east-1:12345:topic0",
                    "arn:aws:sns:us-east-1:12345:topic1",
                    "arn:aws:sns:us-east-1:12345:topic10",
                    "arn:aws:sns:us-east-1:12345:topic100",
                    "arn:aws:sns:us-east-1:12345:topic8",
                    "arn:aws:sns:us-east-1:12345:topic80")
            .doesNotContain(
                    "arn:aws:sns:us-east-1:12345:topic9");

    result = sns.listTopics(token);
    assertThat(result.getNextToken()).isNull();
    assertThat(arnValues(result.getTopics()))
            .hasSize(20)
            .contains(
                    "arn:aws:sns:us-east-1:12345:topic81",
                    "arn:aws:sns:us-east-1:12345:topic9",
                    "arn:aws:sns:us-east-1:12345:topic90",
                    "arn:aws:sns:us-east-1:12345:topic99")
            .doesNotContain(
                    "arn:aws:sns:us-east-1:12345:topic120");
}
项目:aws-java-sdk    文件:AmazonSNSFakeListTopicsTest.java   
@Test
public void topicsShouldBeReturnedInOrder() {
    final String[] topics = new String[4];
    topics[1] = sns.createTopic("10").getTopicArn();
    topics[0] = sns.createTopic("1").getTopicArn();
    topics[3] = sns.createTopic("8").getTopicArn();
    topics[2] = sns.createTopic("17").getTopicArn();
    final ListTopicsResult result = sns.listTopics();

    assertThat(result.getNextToken()).isNull();
    assertThat(arnValues(result.getTopics())).containsExactly(topics);
}
项目:Cheddar    文件:DefaultSnsTopicResourceFactory.java   
private String topicArnForName(final String name) {
    String nextToken = null;
    String topicArn = null;
    while (topicArn == null) {
        final ListTopicsResult listTopicsResult = amazonSnsClient.listTopics(nextToken);
        topicArn = topicArnForNameInTopics(name, listTopicsResult.getTopics());
        nextToken = listTopicsResult.getNextToken();
        if (nextToken == null) {
            break;
        }
    }
    return topicArn;
}
项目:spring-cloud-aws    文件:DynamicTopicDestinationResolver.java   
private String getTopicResourceName(String marker, String topicName) {
    ListTopicsResult listTopicsResult = this.amazonSns.listTopics(new ListTopicsRequest(marker));
    for (Topic topic : listTopicsResult.getTopics()) {
        AmazonResourceName resourceName = AmazonResourceName.fromString(topic.getTopicArn());
        if (resourceName.getResourceType().equals(topicName)) {
            return topic.getTopicArn();
        }
    }

    if (StringUtils.hasText(listTopicsResult.getNextToken())) {
        return getTopicResourceName(listTopicsResult.getNextToken(), topicName);
    } else {
        throw new IllegalArgumentException("No topic found for name :'" + topicName + "'");
    }
}
项目:spring-cloud-aws    文件:DynamicTopicDestinationResolverTest.java   
@Test
public void resolveDestination_withNonExistentTopicAndWithoutMarkerReturnedOnListTopics_shouldThrowIllegalArgumentException() throws Exception {
    // Arrange
    this.expectedException.expect(IllegalArgumentException.class);
    this.expectedException.expectMessage("No topic found for name :'test'");

    AmazonSNS sns = mock(AmazonSNS.class);
    when(sns.listTopics(new ListTopicsRequest(null))).thenReturn(new ListTopicsResult());

    DynamicTopicDestinationResolver resolver = new DynamicTopicDestinationResolver(sns);

    // Act
    resolver.resolveDestination("test");
}
项目:spring-cloud-aws    文件:DynamicTopicDestinationResolverTest.java   
@Test
public void resolveDestination_withNonExistentTopicAndWithMarkerReturnedOnListTopics_shouldCallListMultipleTimeWithMarkerAndThrowIllegalArgumentException() throws Exception {
    // Arrange
    this.expectedException.expect(IllegalArgumentException.class);
    this.expectedException.expectMessage("No topic found for name :'test'");

    AmazonSNS sns = mock(AmazonSNS.class);
    when(sns.listTopics(new ListTopicsRequest(null))).thenReturn(new ListTopicsResult().withNextToken("foo"));
    when(sns.listTopics(new ListTopicsRequest("foo"))).thenReturn(new ListTopicsResult());

    DynamicTopicDestinationResolver resolver = new DynamicTopicDestinationResolver(sns);

    // Act
    resolver.resolveDestination("test");
}
项目:spring-cloud-aws    文件:NotificationMessagingTemplateTest.java   
@Test
public void convertAndSend_withDestinationPayloadAndSubject_shouldSetSubject() throws Exception {
    // Arrange
    AmazonSNS amazonSns = mock(AmazonSNS.class);
    NotificationMessagingTemplate notificationMessagingTemplate = new NotificationMessagingTemplate(amazonSns);
    String physicalTopicName = "arn:aws:sns:eu-west:123456789012:test";
    when(amazonSns.listTopics(new ListTopicsRequest(null))).thenReturn(new ListTopicsResult().withTopics(new Topic().withTopicArn(physicalTopicName)));

    // Act
    notificationMessagingTemplate.sendNotification(physicalTopicName, "My message", "My subject");

    // Assert
    verify(amazonSns).publish(new PublishRequest(physicalTopicName, "My message", "My subject").withMessageAttributes(isNotNull()));
}
项目:spring-cloud-aws    文件:NotificationMessagingTemplateTest.java   
@Test
public void convertAndSend_withPayloadAndSubject_shouldSetSubject() throws Exception {
    // Arrange
    AmazonSNS amazonSns = mock(AmazonSNS.class);
    NotificationMessagingTemplate notificationMessagingTemplate = new NotificationMessagingTemplate(amazonSns);
    String physicalTopicName = "arn:aws:sns:eu-west:123456789012:test";
    when(amazonSns.listTopics(new ListTopicsRequest(null))).thenReturn(new ListTopicsResult().withTopics(new Topic().withTopicArn(physicalTopicName)));
    notificationMessagingTemplate.setDefaultDestinationName(physicalTopicName);

    // Act
    notificationMessagingTemplate.sendNotification("My message", "My subject");

    // Assert
    verify(amazonSns).publish(new PublishRequest(physicalTopicName, "My message", "My subject").withMessageAttributes(isNotNull()));
}
项目:awslocal    文件:InMemorySNS.java   
@Override
public ListTopicsResult listTopics() throws AmazonClientException {
    return new ListTopicsResult().
            withTopics(FluentIterable.
                    from(_subscriptionsForTopic.keySet()).
                    transform(NEW_TOPIC).
                    toList());
}
项目:Camel    文件:AmazonSNSClientMock.java   
@Override
public ListTopicsResult listTopics(ListTopicsRequest listTopicsRequest) throws AmazonServiceException, AmazonClientException {
    throw new UnsupportedOperationException();
}
项目:Camel    文件:AmazonSNSClientMock.java   
@Override
public ListTopicsResult listTopics() throws AmazonServiceException, AmazonClientException {
    throw new UnsupportedOperationException();
}
项目:awslocal    文件:InMemorySNS.java   
@Override
public ListTopicsResult listTopics(ListTopicsRequest listTopicsRequest) throws AmazonClientException {
    return listTopics();
}
项目:usergrid    文件:AmazonNotificationUtils.java   
public static String getTopicArn( final AmazonSNSClient sns, final String queueName, final boolean createOnMissing )
    throws Exception {

    if ( logger.isTraceEnabled() ) {
        logger.trace( "Looking up Topic ARN: {}", queueName );
    }

    ListTopicsResult listTopicsResult = sns.listTopics();
    String topicArn = null;

    for ( Topic topic : listTopicsResult.getTopics() ) {
        String arn = topic.getTopicArn();

        if ( queueName.equals( arn.substring( arn.lastIndexOf( ':' ) ) ) ) {
            topicArn = arn;

            if (logger.isTraceEnabled()) {
                logger.trace( "Found existing topic arn=[{}] for queue=[{}]", topicArn, queueName );
            }
        }
    }

    if ( topicArn == null && createOnMissing ) {
        if (logger.isTraceEnabled()) {
            logger.trace("Creating topic for queue=[{}]...", queueName);
        }

        CreateTopicResult createTopicResult = sns.createTopic( queueName );
        topicArn = createTopicResult.getTopicArn();

        if (logger.isTraceEnabled()) {
            logger.trace("Successfully created topic with name {} and arn {}", queueName, topicArn);
        }
    }
    else {
        logger.error( "Error looking up topic ARN for queue=[{}] and createOnMissing=[{}]", queueName,
            createOnMissing );
    }

    if ( logger.isTraceEnabled() ) {
        logger.trace( "Returning Topic ARN=[{}] for Queue=[{}]", topicArn, queueName );
    }


    return topicArn;
}