Skip to content

Commit e51eb92

Browse files
Returning correct operation name for DeleteTableOperation (#6792)
* Returning correct operation name for DeleteTableOperation * Adding tests for OperationName.
1 parent 195d1b6 commit e51eb92

File tree

4 files changed

+118
-8
lines changed

4 files changed

+118
-8
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"type": "bugfix",
3+
"category": "Amazon DynamoDB Enhanced Client",
4+
"contributor": "",
5+
"description": "Returning correct operation name for DeleteTableOperation"
6+
}

services-custom/dynamodb-enhanced/src/main/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperation.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public static <T> DeleteTableOperation<T> create() {
3838

3939
@Override
4040
public OperationName operationName() {
41-
return OperationName.DELETE_ITEM;
41+
return OperationName.DELETE_TABLE;
4242
}
4343

4444
@Override

services-custom/dynamodb-enhanced/src/test/java/software/amazon/awssdk/enhanced/dynamodb/internal/operations/DeleteTableOperationTest.java

Lines changed: 45 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,13 @@
1515

1616
package software.amazon.awssdk.enhanced.dynamodb.internal.operations;
1717

18+
import static org.hamcrest.MatcherAssert.assertThat;
19+
import static org.hamcrest.Matchers.is;
20+
import static org.mockito.ArgumentMatchers.same;
21+
import static org.mockito.Mockito.verify;
22+
import static org.mockito.Mockito.when;
23+
24+
import java.util.concurrent.CompletableFuture;
1825
import org.junit.Test;
1926
import org.junit.runner.RunWith;
2027
import org.mockito.Mock;
@@ -24,14 +31,10 @@
2431
import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItem;
2532
import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItemWithIndices;
2633
import software.amazon.awssdk.enhanced.dynamodb.functionaltests.models.FakeItemWithSort;
27-
import software.amazon.awssdk.enhanced.dynamodb.model.CreateTableEnhancedRequest;
34+
import software.amazon.awssdk.services.dynamodb.DynamoDbAsyncClient;
2835
import software.amazon.awssdk.services.dynamodb.DynamoDbClient;
2936
import software.amazon.awssdk.services.dynamodb.model.DeleteTableRequest;
30-
31-
import static org.hamcrest.MatcherAssert.assertThat;
32-
import static org.hamcrest.Matchers.is;
33-
import static org.mockito.ArgumentMatchers.same;
34-
import static org.mockito.Mockito.verify;
37+
import software.amazon.awssdk.services.dynamodb.model.DeleteTableResponse;
3538

3639
@RunWith(MockitoJUnitRunner.class)
3740
public class DeleteTableOperationTest {
@@ -46,6 +49,14 @@ public class DeleteTableOperationTest {
4649
@Mock
4750
private DynamoDbClient mockDynamoDbClient;
4851

52+
@Mock
53+
private DynamoDbAsyncClient mockDynamoDbAsyncClient;
54+
55+
@Test
56+
public void operationName_returnsDeleteTable() {
57+
DeleteTableOperation<FakeItem> operation = DeleteTableOperation.create();
58+
assertThat(operation.operationName(), is(OperationName.DELETE_TABLE));
59+
}
4960

5061
@Test
5162
public void getServiceCall_makesTheRightCall() {
@@ -55,11 +66,26 @@ public void getServiceCall_makesTheRightCall() {
5566
verify(mockDynamoDbClient).deleteTable(same(deleteTableRequest));
5667
}
5768

69+
@Test
70+
public void getAsyncServiceCall_makesTheRightCallAndReturnsResponse() {
71+
DeleteTableOperation<FakeItem> operation = DeleteTableOperation.create();
72+
DeleteTableRequest deleteTableRequest = DeleteTableRequest.builder().build();
73+
CompletableFuture<DeleteTableResponse> expectedResponse =
74+
CompletableFuture.completedFuture(DeleteTableResponse.builder().build());
75+
76+
when(mockDynamoDbAsyncClient.deleteTable(same(deleteTableRequest))).thenReturn(expectedResponse);
77+
78+
CompletableFuture<DeleteTableResponse> response = operation.asyncServiceCall(mockDynamoDbAsyncClient)
79+
.apply(deleteTableRequest);
80+
81+
assertThat(response, is(expectedResponse));
82+
verify(mockDynamoDbAsyncClient).deleteTable(same(deleteTableRequest));
83+
}
5884

5985
@Test
6086
public void generateRequest_from_deleteTableOperation() {
6187
DeleteTableOperation<FakeItemWithSort> deleteTableOperation = DeleteTableOperation.create();
62-
final DeleteTableRequest deleteTableRequest = deleteTableOperation
88+
DeleteTableRequest deleteTableRequest = deleteTableOperation
6389
.generateRequest(FakeItemWithSort.getTableSchema(),
6490
PRIMARY_CONTEXT,
6591
null);
@@ -72,4 +98,16 @@ public void generateRequest_doesNotWorkForIndex() {
7298
operation.generateRequest(FakeItemWithIndices.getTableSchema(), GSI_1_CONTEXT, null);
7399
}
74100

101+
@Test
102+
public void transformResponse_returnsNull() {
103+
DeleteTableOperation<FakeItem> operation = DeleteTableOperation.create();
104+
105+
Void response = operation.transformResponse(DeleteTableResponse.builder().build(),
106+
FakeItem.getTableSchema(),
107+
PRIMARY_CONTEXT,
108+
null);
109+
110+
assertThat(response, is((Void) null));
111+
}
112+
75113
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License").
5+
* You may not use this file except in compliance with the License.
6+
* A copy of the License is located at
7+
*
8+
* http://aws.amazon.com/apache2.0
9+
*
10+
* or in the "license" file accompanying this file. This file is distributed
11+
* on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
12+
* express or implied. See the License for the specific language governing
13+
* permissions and limitations under the License.
14+
*/
15+
16+
package software.amazon.awssdk.enhanced.dynamodb.internal.operations;
17+
18+
import static org.junit.Assert.assertArrayEquals;
19+
import static org.junit.Assert.assertEquals;
20+
import static org.junit.Assert.assertNull;
21+
22+
import org.junit.Test;
23+
24+
public class OperationNameTest {
25+
26+
@Test
27+
public void values_returnsExpectedConstantsInDeclarationOrder() {
28+
assertArrayEquals(new OperationName[] {
29+
OperationName.NONE,
30+
OperationName.BATCH_GET_ITEM,
31+
OperationName.BATCH_WRITE_ITEM,
32+
OperationName.CREATE_TABLE,
33+
OperationName.DELETE_ITEM,
34+
OperationName.DELETE_TABLE,
35+
OperationName.DESCRIBE_TABLE,
36+
OperationName.GET_ITEM,
37+
OperationName.QUERY,
38+
OperationName.PUT_ITEM,
39+
OperationName.SCAN,
40+
OperationName.TRANSACT_GET_ITEMS,
41+
OperationName.TRANSACT_WRITE_ITEMS,
42+
OperationName.UPDATE_ITEM
43+
}, OperationName.values());
44+
}
45+
46+
@Test
47+
public void label_returnsExpectedLabelForEachConstant() {
48+
int operationNameCount = OperationName.values().length;
49+
assertEquals(14, operationNameCount);
50+
51+
assertNull(OperationName.NONE.label());
52+
assertEquals("BatchGetItem", OperationName.BATCH_GET_ITEM.label());
53+
assertEquals("BatchWriteItem", OperationName.BATCH_WRITE_ITEM.label());
54+
assertEquals("CreateTable", OperationName.CREATE_TABLE.label());
55+
assertEquals("DeleteItem", OperationName.DELETE_ITEM.label());
56+
assertEquals("DeleteTable", OperationName.DELETE_TABLE.label());
57+
assertEquals("DescribeTable", OperationName.DESCRIBE_TABLE.label());
58+
assertEquals("GetItem", OperationName.GET_ITEM.label());
59+
assertEquals("Query", OperationName.QUERY.label());
60+
assertEquals("PutItem", OperationName.PUT_ITEM.label());
61+
assertEquals("Scan", OperationName.SCAN.label());
62+
assertEquals("TransactGetItems", OperationName.TRANSACT_GET_ITEMS.label());
63+
assertEquals("TransactWriteItems", OperationName.TRANSACT_WRITE_ITEMS.label());
64+
assertEquals("UpdateItem", OperationName.UPDATE_ITEM.label());
65+
}
66+
}

0 commit comments

Comments
 (0)