@Override public List<TopicPath> listTopics(ProjectPath project) throws IOException { Topics.List request = pubsub.projects().topics().list(project.getPath()); ListTopicsResponse response = request.execute(); if (response.getTopics() == null || response.getTopics().isEmpty()) { return ImmutableList.of(); } List<TopicPath> topics = new ArrayList<>(response.getTopics().size()); while (true) { for (Topic topic : response.getTopics()) { topics.add(topicPathFromPath(topic.getName())); } if (Strings.isNullOrEmpty(response.getNextPageToken())) { break; } request.setPageToken(response.getNextPageToken()); response = request.execute(); } return topics; }
if (!response.isEmpty()) { for (Topic topic : response.getTopics()) { hasTopics = true; System.out.println(topic.getName()); nextPageToken = response.getNextPageToken(); } while (nextPageToken != null); if (!hasTopics) {
public Set<String> listTopics() throws IOException { ListTopicsResponse listTopicsResponse = client.projects().topics().list(getProjectPath()).execute(); List<Topic> topics = listTopicsResponse.getTopics(); Set<String> topicsName = new HashSet<>(); for (Topic topic : topics) { String topicName = topic.getName(); String[] split = topicName.split("/"); topicsName.add(split[3]); } return topicsName; }
@Test public void listTopics() throws Exception { ListTopicsResponse expectedResponse1 = new ListTopicsResponse(); expectedResponse1.setTopics(Collections.singletonList(buildTopic(1))); expectedResponse1.setNextPageToken("AVgJH3Z7aHxiDBs"); ListTopicsResponse expectedResponse2 = new ListTopicsResponse(); expectedResponse2.setTopics(Collections.singletonList(buildTopic(2))); Topics.List request = mockPubsub.projects().topics().list(PROJECT.getPath()); when((Object) (request.execute())).thenReturn(expectedResponse1, expectedResponse2); List<TopicPath> topicPaths = client.listTopics(PROJECT); assertEquals(2, topicPaths.size()); }