diff --git a/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/sdk/runners/DataflowPipelineTranslatorTest.java b/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/sdk/runners/DataflowPipelineTranslatorTest.java index 7a3caa65fb24..60cd7b7c54cd 100644 --- a/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/sdk/runners/DataflowPipelineTranslatorTest.java +++ b/runners/google-cloud-dataflow-java/src/test/java/org/apache/beam/sdk/runners/DataflowPipelineTranslatorTest.java @@ -72,9 +72,9 @@ import com.google.api.services.dataflow.model.WorkerPool; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; -import org.hamcrest.Matcher; import org.hamcrest.Matchers; import org.junit.Assert; import org.junit.Rule; @@ -872,9 +872,9 @@ public void processElement(ProcessContext c) throws Exception { public void populateDisplayData(DisplayData.Builder builder) { builder .add("foo", "bar") - .add("foo2", DataflowPipelineTranslatorTest.class) - .withLabel("Test Class") - .withLinkUrl("http://www.google.com"); + .add("foo2", 123) + .withLabel("Test Value") + .withLinkUrl("http://www.google.com"); } }; @@ -890,10 +890,12 @@ public void populateDisplayData(DisplayData.Builder builder) { } }; + ParDo.Bound parDo1 = ParDo.of(fn1); + ParDo.Bound parDo2 = ParDo.of(fn2); pipeline .apply(Create.of(1, 2, 3)) - .apply(ParDo.of(fn1)) - .apply(ParDo.of(fn2)); + .apply(parDo1) + .apply(parDo2); Job job = translator @@ -910,43 +912,38 @@ public void populateDisplayData(DisplayData.Builder builder) { Map parDo2Properties = steps.get(2).getProperties(); assertThat(parDo1Properties, hasKey("display_data")); - - @SuppressWarnings("unchecked") - Collection> fn1displayData = - (Collection>) parDo1Properties.get("display_data"); - @SuppressWarnings("unchecked") - Collection> fn2displayData = - (Collection>) parDo2Properties.get("display_data"); - - @SuppressWarnings("unchecked") - Matcher>> fn1expectedData = - Matchers.>containsInAnyOrder( - ImmutableMap.builder() - .put("namespace", fn1.getClass().getName()) - .put("key", "foo") - .put("type", "STRING") - .put("value", "bar") - .build(), - ImmutableMap.builder() - .put("namespace", fn1.getClass().getName()) - .put("key", "foo2") - .put("type", "JAVA_CLASS") - .put("value", DataflowPipelineTranslatorTest.class.getName()) - .put("shortValue", DataflowPipelineTranslatorTest.class.getSimpleName()) - .put("label", "Test Class") - .put("linkUrl", "http://www.google.com") - .build()); - - @SuppressWarnings("unchecked") - Matcher>> fn2expectedData = - Matchers.>contains( - ImmutableMap.builder() - .put("namespace", fn2.getClass().getName()) - .put("key", "foo3") - .put("type", "INTEGER") - .put("value", 1234L) - .build()); - assertThat(fn1displayData, fn1expectedData); - assertThat(fn2displayData, fn2expectedData); + Collection> fn1displayData = + (Collection>) parDo1Properties.get("display_data"); + Collection> fn2displayData = + (Collection>) parDo2Properties.get("display_data"); + + ImmutableSet> expectedFn1DisplayData = ImmutableSet.of( + ImmutableMap.builder() + .put("key", "foo") + .put("type", "STRING") + .put("value", "bar") + .put("namespace", fn1.getClass().getName()) + .build(), + ImmutableMap.builder() + .put("key", "foo2") + .put("type", "INTEGER") + .put("value", "123") + .put("namespace", fn1.getClass().getName()) + .put("label", "Test Value") + .put("linkUrl", "http://www.google.com") + .build() + ); + + ImmutableSet> expectedFn2DisplayData = ImmutableSet.of( + ImmutableMap.builder() + .put("key", "foo3") + .put("type", "STRING") + .put("value", "barge") + .put("namespace", fn2.getClass().getName()) + .build() + ); + + assertEquals(expectedFn1DisplayData, ImmutableSet.copyOf(fn1displayData)); + assertEquals(expectedFn2DisplayData, ImmutableSet.copyOf(fn2displayData)); } }