if (path.startsWith(SUBSCRIPTION_RANDOM_TEST_PREFIX) || path.startsWith(SUBSCRIPTION_STARTING_SIGNAL)) { return new PubsubSubscription(Type.FAKE, "", path); return new PubsubSubscription(Type.NORMAL, projectName, subscriptionName);
/** Like {@code subscription()} but with a {@link ValueProvider}. */ public Read<T> fromSubscription(ValueProvider<String> subscription) { if (subscription.isAccessible()) { // Validate. PubsubSubscription.fromPath(subscription.get()); } return toBuilder() .setSubscriptionProvider( NestedValueProvider.of(subscription, new SubscriptionTranslator())) .build(); }
@Override public PubsubSubscription apply(String from) { return PubsubSubscription.fromPath(from); } }
@Override public String toString() { return asPath(); } }
@Test public void testValueProviderSubscription() { StaticValueProvider<String> provider = StaticValueProvider.of("projects/project/subscriptions/subscription"); Read<String> pubsubRead = PubsubIO.readStrings().fromSubscription(provider); Pipeline.create().apply(pubsubRead); assertThat(pubsubRead.getSubscriptionProvider(), not(nullValue())); assertThat(pubsubRead.getSubscriptionProvider().isAccessible(), is(true)); assertThat(pubsubRead.getSubscriptionProvider().get().asPath(), equalTo(provider.get())); }