command = new UpdateItemCommand(ddbClient, configuration, exchange);
}
@Test
public void execute() {
Key key = new Key(new AttributeValue("Key_1"));
exchange.getIn().setHeader(DdbConstants.KEY, key);
Map<String, AttributeValueUpdate> attributeMap = new HashMap<String, AttributeValueUpdate>();
AttributeValueUpdate attributeValue = new AttributeValueUpdate(
new AttributeValue("new value"), AttributeAction.ADD);
attributeMap.put("name", attributeValue);
exchange.getIn().setHeader(DdbConstants.UPDATE_VALUES, attributeMap);
Map<String, ExpectedAttributeValue> expectedAttributeValueMap = new HashMap<String, ExpectedAttributeValue>();
expectedAttributeValueMap
.put("name", new ExpectedAttributeValue(new AttributeValue("expected value")));
exchange.getIn().setHeader(DdbConstants.UPDATE_CONDITION, expectedAttributeValueMap);
exchange.getIn().setHeader(DdbConstants.RETURN_VALUES, "ALL_OLD");
command.execute();
assertEquals("DOMAIN1", ddbClient.updateItemRequest.getTableName());
assertEquals(attributeMap, ddbClient.updateItemRequest.getAttributeUpdates());
assertEquals(key, ddbClient.updateItemRequest.getKey());
assertEquals(expectedAttributeValueMap, ddbClient.updateItemRequest.getExpected());
assertEquals("ALL_OLD", ddbClient.updateItemRequest.getReturnValues());
assertEquals(new AttributeValue("attrValue"),
exchange.getIn().getHeader(DdbConstants.ATTRIBUTES, Map.class).get(
"attrName"));
}