This is an automated email from the ASF dual-hosted git repository. dannycranmer pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/flink-connector-aws.git
The following commit(s) were added to refs/heads/main by this push: new 53ea410 [FLINK-30098][Connectors/DynamoDB] Migrate DynamoDb unit tests to JUnit5 (#23) 53ea410 is described below commit 53ea41008910237073804dc090d67a1e0852163d Author: Hong Liang Teoh <lian...@amazon.com> AuthorDate: Mon Nov 21 16:17:11 2022 +0000 [FLINK-30098][Connectors/DynamoDB] Migrate DynamoDb unit tests to JUnit5 (#23) --- .../connector/dynamodb/util/PrimaryKeyBuilder.java | 16 ++-- .../util/DynamoDbSerializationUtilTest.java | 2 +- .../dynamodb/util/PrimaryKeyBuilderTest.java | 85 ++++++++++++++++------ 3 files changed, 68 insertions(+), 35 deletions(-) diff --git a/flink-connector-dynamodb/src/main/java/org/apache/flink/connector/dynamodb/util/PrimaryKeyBuilder.java b/flink-connector-dynamodb/src/main/java/org/apache/flink/connector/dynamodb/util/PrimaryKeyBuilder.java index d078dad..00cf0b7 100644 --- a/flink-connector-dynamodb/src/main/java/org/apache/flink/connector/dynamodb/util/PrimaryKeyBuilder.java +++ b/flink-connector-dynamodb/src/main/java/org/apache/flink/connector/dynamodb/util/PrimaryKeyBuilder.java @@ -57,11 +57,7 @@ public class PrimaryKeyBuilder { if (keyAttribute == null) { throw new InvalidRequestException( - "Request " - + request.toString() - + " does not contain partition key " - + keyName - + "."); + "Request " + request + " does not contain partition key " + keyName + "."); } String keyValue = getKeyValue(keyAttribute); @@ -69,7 +65,7 @@ public class PrimaryKeyBuilder { if (StringUtils.isBlank(keyValue)) { throw new InvalidRequestException( "Partition key or sort key attributes require non-empty values. Request " - + request.toString() + + request + " contains empty key " + keyName + "."); @@ -109,19 +105,17 @@ public class PrimaryKeyBuilder { return request.putRequest().item(); } else { throw new InvalidRequestException( - "PutItemRequest " + request.toString() + " does not contain request items"); + "PutItemRequest " + request + " does not contain request items."); } } else if (request.deleteRequest() != null) { if (request.deleteRequest().hasKey()) { return request.deleteRequest().key(); } else { throw new InvalidRequestException( - "DeleteItemRequest " - + request.toString() - + " does not contain request key"); + "DeleteItemRequest " + request + " does not contain request key."); } } else { - throw new InvalidRequestException("Empty write request" + request.toString()); + throw new InvalidRequestException("Empty write request" + request); } } } diff --git a/flink-connector-dynamodb/src/test/java/org/apache/flink/connector/dynamodb/util/DynamoDbSerializationUtilTest.java b/flink-connector-dynamodb/src/test/java/org/apache/flink/connector/dynamodb/util/DynamoDbSerializationUtilTest.java index 68c1f0b..0c64026 100644 --- a/flink-connector-dynamodb/src/test/java/org/apache/flink/connector/dynamodb/util/DynamoDbSerializationUtilTest.java +++ b/flink-connector-dynamodb/src/test/java/org/apache/flink/connector/dynamodb/util/DynamoDbSerializationUtilTest.java @@ -23,7 +23,7 @@ import org.apache.flink.connector.dynamodb.sink.DynamoDbWriteRequestType; import org.apache.flink.shaded.guava30.com.google.common.collect.ImmutableMap; -import org.junit.Test; +import org.junit.jupiter.api.Test; import software.amazon.awssdk.core.SdkBytes; import software.amazon.awssdk.services.dynamodb.model.AttributeValue; diff --git a/flink-connector-dynamodb/src/test/java/org/apache/flink/connector/dynamodb/util/PrimaryKeyBuilderTest.java b/flink-connector-dynamodb/src/test/java/org/apache/flink/connector/dynamodb/util/PrimaryKeyBuilderTest.java index 7a27708..09e22b7 100644 --- a/flink-connector-dynamodb/src/test/java/org/apache/flink/connector/dynamodb/util/PrimaryKeyBuilderTest.java +++ b/flink-connector-dynamodb/src/test/java/org/apache/flink/connector/dynamodb/util/PrimaryKeyBuilderTest.java @@ -23,8 +23,7 @@ import org.apache.flink.connector.dynamodb.sink.InvalidRequestException; import org.apache.flink.shaded.guava30.com.google.common.collect.ImmutableList; import org.apache.flink.shaded.guava30.com.google.common.collect.ImmutableMap; -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.dynamodb.model.AttributeValue; import software.amazon.awssdk.services.dynamodb.model.DeleteRequest; @@ -32,9 +31,11 @@ import software.amazon.awssdk.services.dynamodb.model.PutRequest; import software.amazon.awssdk.services.dynamodb.model.WriteRequest; import java.nio.charset.StandardCharsets; -import java.util.HashMap; import java.util.Map; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; + /** Unit tests for {@link PrimaryKeyBuilder}. */ public class PrimaryKeyBuilderTest { @@ -87,14 +88,13 @@ public class PrimaryKeyBuilderTest { PrimaryKeyBuilder keyBuilder = new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME, SORT_KEY_NAME)); - Assertions.assertThat(keyBuilder.build(putRequestOne)) - .isNotEqualTo(keyBuilder.build(putRequestTwo)); + assertThat(keyBuilder.build(putRequestOne)).isNotEqualTo(keyBuilder.build(putRequestTwo)); } @Test public void testPartitionKeysOfTwoDifferentRequestsEqual() { PrimaryKeyBuilder keyBuilder = new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)); - Assertions.assertThat(keyBuilder.build(createPutItemRequest(createItemValues()))) + assertThat(keyBuilder.build(createPutItemRequest(createItemValues()))) .isEqualTo(keyBuilder.build(createDeleteItemRequest(createItemValues()))); } @@ -103,35 +103,65 @@ public class PrimaryKeyBuilderTest { PrimaryKeyBuilder keyBuilder = new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME, SORT_KEY_NAME)); - Assertions.assertThat(keyBuilder.build(createPutItemRequest(createItemValues()))) + assertThat(keyBuilder.build(createPutItemRequest(createItemValues()))) .isEqualTo(keyBuilder.build(createDeleteItemRequest(createItemValues()))); } - @Test(expected = InvalidRequestException.class) - public void testExceptOnEmptyRequest() { - new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)) - .build(createPutItemRequest(new HashMap<>())); + @Test + public void testExceptOnEmptyPutRequest() { + assertThatExceptionOfType(InvalidRequestException.class) + .isThrownBy( + () -> + new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)) + .build( + WriteRequest.builder() + .putRequest(PutRequest.builder().build()) + .build())) + .withMessageContaining("does not contain request items."); + } + + @Test + public void testExceptOnEmptyDeleteRequest() { + assertThatExceptionOfType(InvalidRequestException.class) + .isThrownBy( + () -> + new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)) + .build( + WriteRequest.builder() + .deleteRequest( + DeleteRequest.builder().build()) + .build())) + .withMessageContaining("does not contain request key."); } - @Test(expected = InvalidRequestException.class) + @Test public void testExceptWhenNoPartitionKey() { ImmutableMap<String, AttributeValue> itemValues = ImmutableMap.of("some_item", AttributeValue.builder().bool(false).build()); - new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)) - .build(createPutItemRequest(itemValues)); + assertThatExceptionOfType(InvalidRequestException.class) + .isThrownBy( + () -> + new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)) + .build(createPutItemRequest(itemValues))) + .withMessageContaining("does not contain partition key part_key_name."); } - @Test(expected = InvalidRequestException.class) + @Test public void testExceptWhenEmptyKey() { ImmutableMap<String, AttributeValue> itemValues = ImmutableMap.of(PARTITION_KEY_NAME, AttributeValue.builder().s("").build()); - new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)) - .build(createPutItemRequest(itemValues)); + assertThatExceptionOfType(InvalidRequestException.class) + .isThrownBy( + () -> + new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)) + .build(createPutItemRequest(itemValues))) + .withMessageContaining( + "Partition key or sort key attributes require non-empty values."); } - @Test(expected = InvalidRequestException.class) + @Test public void testExceptWhenNoPartitionKeyCompositeKey() { ImmutableMap<String, AttributeValue> itemValues = ImmutableMap.of( @@ -140,11 +170,15 @@ public class PrimaryKeyBuilderTest { "some_item", AttributeValue.builder().bool(false).build()); - new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)) - .build(createPutItemRequest(itemValues)); + assertThatExceptionOfType(InvalidRequestException.class) + .isThrownBy( + () -> + new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME)) + .build(createPutItemRequest(itemValues))) + .withMessageContaining("does not contain partition key part_key_name."); } - @Test(expected = InvalidRequestException.class) + @Test public void testExceptWhenNoSortKey() { ImmutableMap<String, AttributeValue> itemValues = ImmutableMap.of( @@ -153,7 +187,12 @@ public class PrimaryKeyBuilderTest { "some_item", AttributeValue.builder().bool(false).build()); - new PrimaryKeyBuilder(ImmutableList.of(PARTITION_KEY_NAME, SORT_KEY_NAME)) - .build(createPutItemRequest(itemValues)); + assertThatExceptionOfType(InvalidRequestException.class) + .isThrownBy( + () -> + new PrimaryKeyBuilder( + ImmutableList.of(PARTITION_KEY_NAME, SORT_KEY_NAME)) + .build(createPutItemRequest(itemValues))) + .withMessageContaining("does not contain partition key sort_key_name."); } }