diff --git a/.changes/next-release/bugfix-AmazonDynamoDBEnhancedClient-d29ad20.json b/.changes/next-release/bugfix-AmazonDynamoDBEnhancedClient-d29ad20.json new file mode 100644 index 000000000000..230e9a99fd8c --- /dev/null +++ b/.changes/next-release/bugfix-AmazonDynamoDBEnhancedClient-d29ad20.json @@ -0,0 +1,6 @@ +{ + "type": "bugfix", + "category": "Amazon DynamoDB Enhanced Client", + "contributor": "", + "description": "Returning correct operation name for DeleteTableOperation" +} diff --git a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperation.java b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperation.java index bce282bdb241..2a4b1dc3d3ad 100644 --- a/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperation.java +++ b/services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperation.java @@ -38,7 +38,7 @@ public static DeleteTableOperation create() { @Override public OperationName operationName() { - return OperationName.DELETE_ITEM; + return OperationName.DELETE_TABLE; } @Override diff --git a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperationTest.java b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperationTest.java index 234eaf446206..461c12397d16 100644 --- a/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperationTest.java +++ b/services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperationTest.java @@ -15,6 +15,13 @@ package software.amazon.awssdk.enhanced.dynamodb.internal.operations; +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.Matchers.is; +import static org.mockito.ArgumentMatchers.same; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.util.concurrent.CompletableFuture; import org.junit.Test; import org.junit.runner.RunWith; import org.mockito.Mock; @@ -24,14 +31,10 @@ import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItem; import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItemWithIndices; import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItemWithSort; -import software.amazon.awssdk.enhanced.dynamodb.model.CreateTableEnhancedRequest; +import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient; import software.amazon.awssdk.services.dynamodb.DynamoDbClient; import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest; - -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; -import static org.mockito.ArgumentMatchers.same; -import static org.mockito.Mockito.verify; +import software.amazon.awssdk.services.dynamodb.model.DeleteTableResponse; @RunWith(MockitoJUnitRunner.class) public class DeleteTableOperationTest { @@ -46,6 +49,14 @@ public class DeleteTableOperationTest { @Mock private DynamoDbClient mockDynamoDbClient; + @Mock + private DynamoDbAsyncClient mockDynamoDbAsyncClient; + + @Test + public void operationName_returnsDeleteTable() { + DeleteTableOperation operation = DeleteTableOperation.create(); + assertThat(operation.operationName(), is(OperationName.DELETE_TABLE)); + } @Test public void getServiceCall_makesTheRightCall() { @@ -55,11 +66,26 @@ public void getServiceCall_makesTheRightCall() { verify(mockDynamoDbClient).deleteTable(same(deleteTableRequest)); } + @Test + public void getAsyncServiceCall_makesTheRightCallAndReturnsResponse() { + DeleteTableOperation operation = DeleteTableOperation.create(); + DeleteTableRequest deleteTableRequest = DeleteTableRequest.builder().build(); + CompletableFuture expectedResponse = + CompletableFuture.completedFuture(DeleteTableResponse.builder().build()); + + when(mockDynamoDbAsyncClient.deleteTable(same(deleteTableRequest))).thenReturn(expectedResponse); + + CompletableFuture response = operation.asyncServiceCall(mockDynamoDbAsyncClient) + .apply(deleteTableRequest); + + assertThat(response, is(expectedResponse)); + verify(mockDynamoDbAsyncClient).deleteTable(same(deleteTableRequest)); + } @Test public void generateRequest_from_deleteTableOperation() { DeleteTableOperation deleteTableOperation = DeleteTableOperation.create(); - final DeleteTableRequest deleteTableRequest = deleteTableOperation + DeleteTableRequest deleteTableRequest = deleteTableOperation .generateRequest(FakeItemWithSort.getTableSchema(), PRIMARY_CONTEXT, null); @@ -72,4 +98,16 @@ public void generateRequest_doesNotWorkForIndex() { operation.generateRequest(FakeItemWithIndices.getTableSchema(), GSI_1_CONTEXT, null); } + @Test + public void transformResponse_returnsNull() { + DeleteTableOperation operation = DeleteTableOperation.create(); + + Void response = operation.transformResponse(DeleteTableResponse.builder().build(), + FakeItem.getTableSchema(), + PRIMARY_CONTEXT, + null); + + assertThat(response, is((Void) null)); + } + }