Skip to content

Instantly share code, notes, and snippets.

<!-- DynamoDB SDK -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
</dependency>
<!-- DynamoDBLocal lib -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>DynamoDBLocal</artifactId>
<version>[1.12,2.0)</version>
public class DynamoDBLocalStarterTest {
private static final String TEST_TABLE_NAME = "user_tests";
private static final String TEST_TABLE_HASH_KEY = "user_id";
private static final String TEST_TABLE_RANGE_KEY = "user_type";
public static AmazonDynamoDB startDDBLocal() {
return DynamoDBEmbedded.create().amazonDynamoDB();
}
public class DynamoDBLocalStarterTest {
// ...
public static CreateTableResult createTable(
AmazonDynamoDB ddb, String tableName, String hashKeyName, String rangeKeyName) {
List<AttributeDefinition> attributeDefinitions = new ArrayList<AttributeDefinition>();
List<KeySchemaElement> ks = new ArrayList<KeySchemaElement>();
public class UserRepoDynamoDBTest {
private static final String USERS_TABLE_NAME = "beta-us-west-2-users";
private static AmazonDynamoDB ddb;
private DynamoDBMapper ddbClient;
private UserDAO userDAO;
}
public class UserRepoDynamoDBTest {
// ...
@BeforeAll
public static void setUp() {
ddb = DynamoDBLocalStarterTest.startDDBLocal();
}
@AfterAll
public class UserRepoDynamoDBTest {
// ...
@BeforeEach
public void beforeEachSetUp() {
ddbClient = new DynamoDBMapper(ddb);
DynamoDBLocalStarterTest.createTable(
ddb, USERS_TABLE_NAME, UserModel.HASH_KEY, "");
public class UserRepoDynamoDBTest {
// ...
@Test
public void Given_UserRepoDynamoDB_Then_CreateAndReadUserSuccessfully() {
userDAO.createUser(UserMockData.USER_NEW);
UserModel loadedUser = userDAO.getUser(UserMockData.USER_NEW).get();
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- ... -->
<dependencies>
<!-- ... -->
<!-- DynamoDB sdk -->
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-dynamodb</artifactId>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- ... -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-bom</artifactId>
<version>${aws.java.sdk.version}</version>
<type>pom</type>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- ... -->
<repositories>
<repository>
<id>dynamodb-local-frankfurt</id>
<name>DynamoDB Local Release Repository</name>
<url>https://s3.eu-central-1.amazonaws.com/dynamodb-local-frankfurt/release</url>
</repository>
</repositories>