public class DataflowAssert extends Object
PCollection
incorporated into the pipeline. Such an assertion
can be checked no matter what kind of PipelineRunner is
used.
Note that the DataflowAssert call must precede the call
to Pipeline.run().
Examples of use:
Pipeline p = TestPipeline.create();
...
PCollection<String> output =
input
.apply(ParDo.of(new TestDoFn()));
DataflowAssert.that(output)
.containsInAnyOrder("out1", "out2", "out3");
...
PCollection<Integer> ints = ...
PCollection<Integer> sum =
ints
.apply(Combine.globally(new SumInts()));
DataflowAssert.that(sum)
.is(42);
...
p.run();
JUnit and Hamcrest must be linked in by any code that uses DataflowAssert.
| Modifier and Type | Class and Description |
|---|---|
static interface |
DataflowAssert.AssertRelation<ActualT,ExpectedT>
A binary predicate between types
Actual and Expected. |
static class |
DataflowAssert.IterableAssert<T>
An assertion about the contents of a
PCollectionView. |
static class |
DataflowAssert.SingletonAssert<T>
An assertion about the single value of type
T
associated with a PCollectionView. |
| Modifier and Type | Method and Description |
|---|---|
static <T> DataflowAssert.IterableAssert<T> |
that(PCollection<T> actual)
Constructs an
DataflowAssert.IterableAssert for the elements of the provided
PCollection. |
static <T> DataflowAssert.IterableAssert<T> |
thatIterable(PCollectionView<Iterable<T>> actual)
Constructs an
DataflowAssert.IterableAssert for the value of the provided
PCollectionView PCollectionView<Iterable<T>>. |
static <K,V> DataflowAssert.SingletonAssert<Map<K,V>> |
thatMap(PCollection<KV<K,V>> actual)
Constructs a
DataflowAssert.SingletonAssert for the value of the provided PCollection,
which must have at most one value per key. |
static <K,V> DataflowAssert.SingletonAssert<Map<K,Iterable<V>>> |
thatMultimap(PCollection<KV<K,V>> actual)
Constructs a
DataflowAssert.SingletonAssert for the value of the provided PCollection. |
static <T> DataflowAssert.SingletonAssert<T> |
thatSingleton(PCollection<T> actual)
Constructs a
DataflowAssert.SingletonAssert for the value of the provided
PCollection PCollection<T>, which must be a singleton. |
static <T> DataflowAssert.IterableAssert<T> |
thatSingletonIterable(PCollection<? extends Iterable<T>> actual)
Constructs an
DataflowAssert.IterableAssert for the value of the provided
PCollection which must contain a single Iterable<T>
value. |
public static <T> DataflowAssert.IterableAssert<T> that(PCollection<T> actual)
DataflowAssert.IterableAssert for the elements of the provided
PCollection.public static <T> DataflowAssert.IterableAssert<T> thatSingletonIterable(PCollection<? extends Iterable<T>> actual)
DataflowAssert.IterableAssert for the value of the provided
PCollection which must contain a single Iterable<T>
value.public static <T> DataflowAssert.IterableAssert<T> thatIterable(PCollectionView<Iterable<T>> actual)
DataflowAssert.IterableAssert for the value of the provided
PCollectionView PCollectionView<Iterable<T>>.public static <T> DataflowAssert.SingletonAssert<T> thatSingleton(PCollection<T> actual)
DataflowAssert.SingletonAssert for the value of the provided
PCollection PCollection<T>, which must be a singleton.public static <K,V> DataflowAssert.SingletonAssert<Map<K,Iterable<V>>> thatMultimap(PCollection<KV<K,V>> actual)
DataflowAssert.SingletonAssert for the value of the provided PCollection.
Note that the actual value must be coded by a KvCoder,
not just any Coder<K, V>.
public static <K,V> DataflowAssert.SingletonAssert<Map<K,V>> thatMap(PCollection<KV<K,V>> actual)
DataflowAssert.SingletonAssert for the value of the provided PCollection,
which must have at most one value per key.
Note that the actual value must be coded by a KvCoder,
not just any Coder<K, V>.