You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by ch...@apache.org on 2022/05/16 12:54:24 UTC

[flink] branch master updated: [FLINK-27566][aws][tests] Migrate aws-kinesis-firehose to JUnit5

This is an automated email from the ASF dual-hosted git repository.

chesnay pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/flink.git


The following commit(s) were added to refs/heads/master by this push:
     new 461bddecc68 [FLINK-27566][aws][tests] Migrate aws-kinesis-firehose to JUnit5
461bddecc68 is described below

commit 461bddecc683a0a41c4a3ea76a39f4836b871667
Author: Sergey Nuyanzin <sn...@gmail.com>
AuthorDate: Mon May 16 14:54:16 2022 +0200

    [FLINK-27566][aws][tests] Migrate aws-kinesis-firehose to JUnit5
---
 .../sink/KinesisFirehoseSinkBuilderTest.java       | 12 +++++-----
 .../KinesisFirehoseSinkElementConverterTest.java   |  8 +++----
 .../firehose/sink/KinesisFirehoseSinkITCase.java   | 26 ++++++++++++----------
 .../firehose/sink/KinesisFirehoseSinkTest.java     | 14 ++++++------
 .../sink/KinesisFirehoseSinkWriterTest.java        | 12 +++++-----
 .../sink/KinesisFirehoseStateSerializerTest.java   |  6 ++---
 .../KinesisFirehoseDynamicTableFactoryTest.java    |  9 ++++----
 .../org.junit.jupiter.api.extension.Extension      | 16 +++++++++++++
 8 files changed, 60 insertions(+), 43 deletions(-)

diff --git a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkBuilderTest.java b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkBuilderTest.java
index 490b381cf97..e375193586f 100644
--- a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkBuilderTest.java
+++ b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkBuilderTest.java
@@ -22,18 +22,18 @@ import org.apache.flink.api.common.serialization.SimpleStringSchema;
 import org.apache.flink.connector.aws.config.AWSConfigConstants;
 
 import org.assertj.core.api.Assertions;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.Properties;
 
 /** Covers construction, defaults and sanity checking of {@link KinesisFirehoseSinkBuilder}. */
-public class KinesisFirehoseSinkBuilderTest {
+class KinesisFirehoseSinkBuilderTest {
 
     private static final SerializationSchema<String> SERIALIZATION_SCHEMA =
             new SimpleStringSchema();
 
     @Test
-    public void elementConverterOfSinkMustBeSetWhenBuilt() {
+    void elementConverterOfSinkMustBeSetWhenBuilt() {
         Assertions.assertThatExceptionOfType(NullPointerException.class)
                 .isThrownBy(
                         () ->
@@ -45,7 +45,7 @@ public class KinesisFirehoseSinkBuilderTest {
     }
 
     @Test
-    public void streamNameOfSinkMustBeSetWhenBuilt() {
+    void streamNameOfSinkMustBeSetWhenBuilt() {
         Assertions.assertThatExceptionOfType(NullPointerException.class)
                 .isThrownBy(
                         () ->
@@ -57,7 +57,7 @@ public class KinesisFirehoseSinkBuilderTest {
     }
 
     @Test
-    public void streamNameOfSinkMustBeSetToNonEmptyWhenBuilt() {
+    void streamNameOfSinkMustBeSetToNonEmptyWhenBuilt() {
         Assertions.assertThatExceptionOfType(IllegalArgumentException.class)
                 .isThrownBy(
                         () ->
@@ -70,7 +70,7 @@ public class KinesisFirehoseSinkBuilderTest {
     }
 
     @Test
-    public void defaultProtocolVersionInsertedToConfiguration() {
+    void defaultProtocolVersionInsertedToConfiguration() {
         Properties expectedProps = new Properties();
         expectedProps.setProperty(AWSConfigConstants.HTTP_PROTOCOL_VERSION, "HTTP1_1");
         Properties defaultProperties =
diff --git a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkElementConverterTest.java b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkElementConverterTest.java
index 221f4447979..ccb45822c75 100644
--- a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkElementConverterTest.java
+++ b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkElementConverterTest.java
@@ -21,17 +21,17 @@ import org.apache.flink.api.common.serialization.SimpleStringSchema;
 import org.apache.flink.connector.base.sink.writer.ElementConverter;
 
 import org.assertj.core.api.Assertions;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import software.amazon.awssdk.core.SdkBytes;
 import software.amazon.awssdk.services.firehose.model.Record;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Covers construction and sanity checking of {@link KinesisFirehoseSinkElementConverter}. */
-public class KinesisFirehoseSinkElementConverterTest {
+class KinesisFirehoseSinkElementConverterTest {
 
     @Test
-    public void elementConverterWillComplainASerializationSchemaIsNotSetIfBuildIsCalledWithoutIt() {
+    void elementConverterWillComplainASerializationSchemaIsNotSetIfBuildIsCalledWithoutIt() {
         Assertions.assertThatExceptionOfType(NullPointerException.class)
                 .isThrownBy(() -> KinesisFirehoseSinkElementConverter.<String>builder().build())
                 .withMessageContaining(
@@ -39,7 +39,7 @@ public class KinesisFirehoseSinkElementConverterTest {
     }
 
     @Test
-    public void elementConverterUsesProvidedSchemaToSerializeRecord() {
+    void elementConverterUsesProvidedSchemaToSerializeRecord() {
         ElementConverter<String, Record> elementConverter =
                 KinesisFirehoseSinkElementConverter.<String>builder()
                         .setSerializationSchema(new SimpleStringSchema())
diff --git a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkITCase.java b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkITCase.java
index 602d6546106..1eeed419c02 100644
--- a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkITCase.java
+++ b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkITCase.java
@@ -24,12 +24,13 @@ import org.apache.flink.connector.firehose.sink.testutils.KinesisFirehoseTestUti
 import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
 import org.apache.flink.util.DockerImageVersions;
 
-import org.junit.After;
-import org.junit.Before;
-import org.junit.ClassRule;
-import org.junit.Test;
+import org.junit.jupiter.api.AfterEach;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+import org.testcontainers.junit.jupiter.Container;
+import org.testcontainers.junit.jupiter.Testcontainers;
 import org.testcontainers.utility.DockerImageName;
 import software.amazon.awssdk.core.SdkSystemSetting;
 import software.amazon.awssdk.http.async.SdkAsyncHttpClient;
@@ -52,7 +53,8 @@ import static org.apache.flink.connector.firehose.sink.testutils.KinesisFirehose
 import static org.assertj.core.api.Assertions.assertThat;
 
 /** Integration test suite for the {@code KinesisFirehoseSink} using a localstack container. */
-public class KinesisFirehoseSinkITCase {
+@Testcontainers
+class KinesisFirehoseSinkITCase {
 
     private static final Logger LOG = LoggerFactory.getLogger(KinesisFirehoseSinkITCase.class);
     private static final String ROLE_NAME = "super-role";
@@ -67,12 +69,12 @@ public class KinesisFirehoseSinkITCase {
     private FirehoseAsyncClient firehoseAsyncClient;
     private IamAsyncClient iamAsyncClient;
 
-    @ClassRule
-    public static LocalstackContainer mockFirehoseContainer =
+    @Container
+    private static LocalstackContainer mockFirehoseContainer =
             new LocalstackContainer(DockerImageName.parse(DockerImageVersions.LOCALSTACK));
 
-    @Before
-    public void setup() throws Exception {
+    @BeforeEach
+    void setup() throws Exception {
         System.setProperty(SdkSystemSetting.CBOR_ENABLED.property(), "false");
         httpClient = AWSServicesTestUtils.createHttpClient(mockFirehoseContainer.getEndpoint());
         s3AsyncClient = createS3Client(mockFirehoseContainer.getEndpoint(), httpClient);
@@ -81,13 +83,13 @@ public class KinesisFirehoseSinkITCase {
         env = StreamExecutionEnvironment.getExecutionEnvironment();
     }
 
-    @After
-    public void teardown() {
+    @AfterEach
+    void teardown() {
         System.clearProperty(SdkSystemSetting.CBOR_ENABLED.property());
     }
 
     @Test
-    public void firehoseSinkWritesCorrectDataToMockAWSServices() throws Exception {
+    void firehoseSinkWritesCorrectDataToMockAWSServices() throws Exception {
         LOG.info("1 - Creating the bucket for Firehose to deliver into...");
         createBucket(s3AsyncClient, BUCKET_NAME);
         LOG.info("2 - Creating the IAM Role for Firehose to write into the s3 bucket...");
diff --git a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkTest.java b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkTest.java
index e91cb395fef..40e9ace995f 100644
--- a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkTest.java
+++ b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkTest.java
@@ -25,7 +25,7 @@ import org.apache.flink.runtime.client.JobExecutionException;
 import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;
 
 import org.assertj.core.api.Assertions;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import software.amazon.awssdk.services.firehose.model.Record;
 
 import java.util.Properties;
@@ -36,7 +36,7 @@ import static org.apache.flink.connector.aws.config.AWSConfigConstants.TRUST_ALL
 import static org.apache.flink.connector.aws.testutils.AWSServicesTestUtils.createConfig;
 
 /** Covers construction, defaults and sanity checking of {@link KinesisFirehoseSink}. */
-public class KinesisFirehoseSinkTest {
+class KinesisFirehoseSinkTest {
 
     private static final ElementConverter<String, Record> elementConverter =
             KinesisFirehoseSinkElementConverter.<String>builder()
@@ -44,7 +44,7 @@ public class KinesisFirehoseSinkTest {
                     .build();
 
     @Test
-    public void deliveryStreamNameMustNotBeNull() {
+    void deliveryStreamNameMustNotBeNull() {
         Assertions.assertThatExceptionOfType(NullPointerException.class)
                 .isThrownBy(
                         () ->
@@ -64,7 +64,7 @@ public class KinesisFirehoseSinkTest {
     }
 
     @Test
-    public void deliveryStreamNameMustNotBeEmpty() {
+    void deliveryStreamNameMustNotBeEmpty() {
         Assertions.assertThatExceptionOfType(IllegalArgumentException.class)
                 .isThrownBy(
                         () ->
@@ -84,7 +84,7 @@ public class KinesisFirehoseSinkTest {
     }
 
     @Test
-    public void firehoseSinkFailsWhenAccessKeyIdIsNotProvided() {
+    void firehoseSinkFailsWhenAccessKeyIdIsNotProvided() {
         Properties properties = createConfig("https://non-exisitent-location");
         properties.setProperty(
                 AWS_CREDENTIALS_PROVIDER, AWSConfigConstants.CredentialProvider.BASIC.toString());
@@ -94,7 +94,7 @@ public class KinesisFirehoseSinkTest {
     }
 
     @Test
-    public void firehoseSinkFailsWhenRegionIsNotProvided() {
+    void firehoseSinkFailsWhenRegionIsNotProvided() {
         Properties properties = createConfig("https://non-exisitent-location");
         properties.remove(AWS_REGION);
         firehoseSinkFailsWithAppropriateMessageWhenInitialConditionsAreMisconfigured(
@@ -102,7 +102,7 @@ public class KinesisFirehoseSinkTest {
     }
 
     @Test
-    public void firehoseSinkFailsWhenUnableToConnectToRemoteService() {
+    void firehoseSinkFailsWhenUnableToConnectToRemoteService() {
         Properties properties = createConfig("https://non-exisitent-location");
         properties.remove(TRUST_ALL_CERTIFICATES);
         firehoseSinkFailsWithAppropriateMessageWhenInitialConditionsAreMisconfigured(
diff --git a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkWriterTest.java b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkWriterTest.java
index 3f2e4f4859d..29160f7d255 100644
--- a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkWriterTest.java
+++ b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseSinkWriterTest.java
@@ -23,8 +23,8 @@ import org.apache.flink.connector.aws.testutils.AWSServicesTestUtils;
 import org.apache.flink.connector.base.sink.writer.ElementConverter;
 import org.apache.flink.connector.base.sink.writer.TestSinkInitContext;
 
-import org.junit.Before;
-import org.junit.Test;
+import org.junit.jupiter.api.BeforeEach;
+import org.junit.jupiter.api.Test;
 import software.amazon.awssdk.core.SdkBytes;
 import software.amazon.awssdk.core.exception.SdkClientException;
 import software.amazon.awssdk.services.firehose.model.Record;
@@ -47,8 +47,8 @@ public class KinesisFirehoseSinkWriterTest {
                     .setSerializationSchema(new SimpleStringSchema())
                     .build();
 
-    @Before
-    public void setup() {
+    @BeforeEach
+    void setup() {
         TestSinkInitContext sinkInitContext = new TestSinkInitContext();
         Properties sinkProperties = AWSServicesTestUtils.createConfig("https://fake_aws_endpoint");
         sinkWriter =
@@ -67,7 +67,7 @@ public class KinesisFirehoseSinkWriterTest {
     }
 
     @Test
-    public void getSizeInBytesReturnsSizeOfBlobBeforeBase64Encoding() {
+    void getSizeInBytesReturnsSizeOfBlobBeforeBase64Encoding() {
         String testString = "{many hands make light work;";
         Record record = Record.builder().data(SdkBytes.fromUtf8String(testString)).build();
         assertThat(sinkWriter.getSizeInBytes(record))
@@ -75,7 +75,7 @@ public class KinesisFirehoseSinkWriterTest {
     }
 
     @Test
-    public void getNumRecordsOutErrorsCounterRecordsCorrectNumberOfFailures()
+    void getNumRecordsOutErrorsCounterRecordsCorrectNumberOfFailures()
             throws IOException, InterruptedException {
         TestSinkInitContext ctx = new TestSinkInitContext();
         KinesisFirehoseSink<String> kinesisFirehoseSink =
diff --git a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseStateSerializerTest.java b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseStateSerializerTest.java
index ce4268e96df..5264e976e35 100644
--- a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseStateSerializerTest.java
+++ b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/sink/KinesisFirehoseStateSerializerTest.java
@@ -22,7 +22,7 @@ import org.apache.flink.api.common.serialization.SimpleStringSchema;
 import org.apache.flink.connector.base.sink.writer.BufferedRequestState;
 import org.apache.flink.connector.base.sink.writer.ElementConverter;
 
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 import software.amazon.awssdk.services.firehose.model.Record;
 
 import java.io.IOException;
@@ -31,7 +31,7 @@ import static org.apache.flink.connector.base.sink.writer.AsyncSinkWriterTestUti
 import static org.apache.flink.connector.base.sink.writer.AsyncSinkWriterTestUtils.getTestState;
 
 /** Test class for {@link KinesisFirehoseStateSerializer}. */
-public class KinesisFirehoseStateSerializerTest {
+class KinesisFirehoseStateSerializerTest {
 
     private static final ElementConverter<String, Record> ELEMENT_CONVERTER =
             KinesisFirehoseSinkElementConverter.<String>builder()
@@ -39,7 +39,7 @@ public class KinesisFirehoseStateSerializerTest {
                     .build();
 
     @Test
-    public void testSerializeAndDeserialize() throws IOException {
+    void testSerializeAndDeserialize() throws IOException {
         BufferedRequestState<Record> expectedState =
                 getTestState(ELEMENT_CONVERTER, this::getRequestSize);
 
diff --git a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/table/KinesisFirehoseDynamicTableFactoryTest.java b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/table/KinesisFirehoseDynamicTableFactoryTest.java
index ac5292e0159..532b3b6de47 100644
--- a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/table/KinesisFirehoseDynamicTableFactoryTest.java
+++ b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/java/org/apache/flink/connector/firehose/table/KinesisFirehoseDynamicTableFactoryTest.java
@@ -29,10 +29,9 @@ import org.apache.flink.table.data.RowData;
 import org.apache.flink.table.factories.TableOptionsBuilder;
 import org.apache.flink.table.factories.TestFormatFactory;
 import org.apache.flink.table.runtime.connector.sink.SinkRuntimeProviderContext;
-import org.apache.flink.util.TestLogger;
 
 import org.assertj.core.api.Assertions;
-import org.junit.Test;
+import org.junit.jupiter.api.Test;
 
 import java.util.Map;
 import java.util.Properties;
@@ -43,11 +42,11 @@ import static org.apache.flink.table.factories.utils.FactoryMocks.createTableSin
  * Test for {@link KinesisFirehoseDynamicSink} created by {@link
  * KinesisFirehoseDynamicTableFactory}.
  */
-public class KinesisFirehoseDynamicTableFactoryTest extends TestLogger {
+class KinesisFirehoseDynamicTableFactoryTest {
     private static final String DELIVERY_STREAM_NAME = "myDeliveryStream";
 
     @Test
-    public void testGoodTableSink() {
+    void testGoodTableSink() {
         ResolvedSchema sinkSchema = defaultSinkSchema();
         Map<String, String> sinkOptions = defaultTableOptions().build();
 
@@ -74,7 +73,7 @@ public class KinesisFirehoseDynamicTableFactoryTest extends TestLogger {
     }
 
     @Test
-    public void testGoodTableSinkWithSinkOptions() {
+    void testGoodTableSinkWithSinkOptions() {
         ResolvedSchema sinkSchema = defaultSinkSchema();
         Map<String, String> sinkOptions = defaultTableOptionsWithSinkOptions().build();
 
diff --git a/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
new file mode 100644
index 00000000000..28999133c2b
--- /dev/null
+++ b/flink-connectors/flink-connector-aws-kinesis-firehose/src/test/resources/META-INF/services/org.junit.jupiter.api.extension.Extension
@@ -0,0 +1,16 @@
+# 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.
+
+org.apache.flink.util.TestLoggerExtension
\ No newline at end of file