@Test public void testRuntimeValueProviderTopic() { TestPipeline pipeline = TestPipeline.create(); ValueProvider<String> topic = pipeline.newProvider("projects/project/topics/topic"); Read<String> pubsubRead = PubsubIO.readStrings().fromTopic(topic); pipeline.apply(pubsubRead); assertThat(pubsubRead.getTopicProvider(), not(nullValue())); assertThat(pubsubRead.getTopicProvider().isAccessible(), is(false)); }
@Override public PCollection<T> expand(PBegin input) { if (getTopicProvider() == null && getSubscriptionProvider() == null) { throw new IllegalStateException( "Need to set either the topic or the subscription for " + "a PubsubIO.Read transform"); if (getTopicProvider() != null && getSubscriptionProvider() != null) { throw new IllegalStateException( "Can't set both the topic and the subscription for " + "a PubsubIO.Read transform"); getTopicProvider() == null ? null : NestedValueProvider.of(getTopicProvider(), new TopicPathTranslator()); @Nullable ValueProvider<SubscriptionPath> subscriptionPath =
@Test public void testValueProviderTopic() { StaticValueProvider<String> provider = StaticValueProvider.of("projects/project/topics/topic"); Read<String> pubsubRead = PubsubIO.readStrings().fromTopic(provider); Pipeline.create().apply(pubsubRead); assertThat(pubsubRead.getTopicProvider(), not(nullValue())); assertThat(pubsubRead.getTopicProvider().isAccessible(), is(true)); assertThat(pubsubRead.getTopicProvider().get().asPath(), equalTo(provider.get())); }
@Test public void testNullSubscription() { String topic = "projects/project/topics/topic"; PubsubIO.Read<String> read = PubsubIO.readStrings().fromTopic(StaticValueProvider.of(topic)); assertNotNull(read.getTopicProvider()); assertNull(read.getSubscriptionProvider()); assertNotNull(DisplayData.from(read)); }
@Override public void populateDisplayData(DisplayData.Builder builder) { super.populateDisplayData(builder); populateCommonDisplayData( builder, getTimestampAttribute(), getIdAttribute(), getTopicProvider()); builder.addIfNotNull( DisplayData.item("subscription", getSubscriptionProvider()) .withLabel("Pubsub Subscription")); } }
@Test public void testNullTopic() { String subscription = "projects/project/subscriptions/subscription"; PubsubIO.Read<String> read = PubsubIO.readStrings().fromSubscription(StaticValueProvider.of(subscription)); assertNull(read.getTopicProvider()); assertNotNull(read.getSubscriptionProvider()); assertNotNull(DisplayData.from(read)); }