public class TestPubsubSignal extends java.lang.Object implements TestRule
PCollection and checks whether they match the
 success criteria.
 Uses a random temporary Pubsub topic for synchronization.
| Modifier and Type | Method and Description | 
|---|---|
| Statement | apply(Statement base,
     Description description) | 
| static TestPubsubSignal | create()Creates an instance of this rule. | 
| PTransform<PBegin,PDone> | signalStart()Outputs a message that the pipeline has started. | 
| <T> PTransform<PCollection<? extends T>,POutput> | signalSuccessWhen(Coder<T> coder,
                 SerializableFunction<java.util.Set<T>,java.lang.Boolean> successPredicate)Invocation of  signalSuccessWhen(Coder, SerializableFunction, SerializableFunction)withObject.toString()as the formatter. | 
| <T> PTransform<PCollection<? extends T>,POutput> | signalSuccessWhen(Coder<T> coder,
                 SerializableFunction<T,java.lang.String> formatter,
                 SerializableFunction<java.util.Set<T>,java.lang.Boolean> successPredicate)Outputs a success message when  successPredicateis evaluated to true. | 
| org.apache.beam.vendor.guava.v26_0_jre.com.google.common.base.Supplier<java.lang.Void> | waitForStart(Duration duration)Future that waits for a start signal for  duration. | 
| void | waitForSuccess(Duration duration)Wait for a success signal for  duration. | 
public static TestPubsubSignal create()
Loads GCP configuration from TestPipelineOptions.
public Statement apply(Statement base, Description description)
public PTransform<PBegin,PDone> signalStart()
public <T> PTransform<PCollection<? extends T>,POutput> signalSuccessWhen(Coder<T> coder, SerializableFunction<T,java.lang.String> formatter, SerializableFunction<java.util.Set<T>,java.lang.Boolean> successPredicate)
successPredicate is evaluated to true.
 successPredicate is a SerializableFunction that accepts a set of currently
 captured events and returns true when the set satisfies the success criteria.
 
If successPredicate is evaluated to false, then it will be re-evaluated when next
 event becomes available.
 
If successPredicate is evaluated to true, then a success will be signaled and waitForSuccess(Duration) will unblock.
 
If successPredicate throws, then failure will be signaled and waitForSuccess(Duration) will unblock.
public <T> PTransform<PCollection<? extends T>,POutput> signalSuccessWhen(Coder<T> coder, SerializableFunction<java.util.Set<T>,java.lang.Boolean> successPredicate)
signalSuccessWhen(Coder, SerializableFunction, SerializableFunction)
 with Object.toString() as the formatter.public org.apache.beam.vendor.guava.v26_0_jre.com.google.common.base.Supplier<java.lang.Void> waitForStart(Duration duration) throws java.io.IOException
duration.
 This future must be created before running the pipeline. A subscription must exist prior to the start signal being published, which occurs immediately upon pipeline startup.
java.io.IOExceptionpublic void waitForSuccess(Duration duration) throws java.io.IOException
duration.java.io.IOException