Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FLINK-30098] Migrate DynamoDb unit tests to JUnit5 #23

Merged
merged 1 commit into from
Nov 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -57,19 +57,15 @@ public String build(WriteRequest request) {

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);

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
+ ".");
Expand Down Expand Up @@ -109,19 +105,17 @@ private static Map<String, AttributeValue> getRequestItems(WriteRequest request)
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);
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

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;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,19 @@
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;
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 {

Expand Down Expand Up @@ -87,14 +88,13 @@ public void testPrimaryKeyDelimited() {

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())));
}

Expand All @@ -103,35 +103,65 @@ public void testCompositeKeysOfTwoDifferentRequestsEqual() {
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(
Expand All @@ -140,11 +170,15 @@ public void testExceptWhenNoPartitionKeyCompositeKey() {
"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(
Expand All @@ -153,7 +187,12 @@ public void testExceptWhenNoSortKey() {
"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.");
}
}