/* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.beam.runners.flink; import org.apache.beam.sdk.Pipeline; import org.apache.beam.sdk.options.PipelineOptions; /** * {@link org.apache.beam.sdk.Pipeline} for testing Dataflow programs on the * {@link FlinkRunner}. */ public class FlinkTestPipeline extends Pipeline { /** * Creates and returns a new test pipeline for batch execution. * * <p>Use {@link org.apache.beam.sdk.testing.PAssert} to add tests, then call * {@link Pipeline#run} to execute the pipeline and check the tests. */ public static FlinkTestPipeline createForBatch() { return create(false); } /** * Creates and returns a new test pipeline for streaming execution. * * <p>Use {@link org.apache.beam.sdk.testing.PAssert} to add tests, then call * {@link Pipeline#run} to execute the pipeline and check the tests. * * @return The Test Pipeline */ public static FlinkTestPipeline createForStreaming() { return create(true); } /** * Creates and returns a new test pipeline for streaming or batch execution. * * <p>Use {@link org.apache.beam.sdk.testing.PAssert} to add tests, then call * {@link Pipeline#run} to execute the pipeline and check the tests. * * @param streaming <code>True</code> for streaming mode, <code>False</code> for batch. * @return The Test Pipeline. */ private static FlinkTestPipeline create(boolean streaming) { TestFlinkRunner flinkRunner = TestFlinkRunner.create(streaming); return new FlinkTestPipeline(flinkRunner.getPipelineOptions()); } private FlinkTestPipeline(PipelineOptions options) { super(options); } }