From b47198b2f1f1aad1cd42f03bcf5b69228187601d Mon Sep 17 00:00:00 2001 From: Sebastian J Date: Wed, 10 Oct 2018 23:56:55 -0400 Subject: [PATCH] Issue #204 - Deleting by HashRange key example added --- .../domain/sample/CRUDOperationsIT.java | 25 +++++++++++++++++-- .../domain/sample/PlaylistRepository.java | 2 ++ 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/CRUDOperationsIT.java b/src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/CRUDOperationsIT.java index 94590daf..132d6fba 100644 --- a/src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/CRUDOperationsIT.java +++ b/src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/CRUDOperationsIT.java @@ -42,6 +42,7 @@ import java.time.Instant; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; import java.util.Optional; import java.util.concurrent.ThreadLocalRandom; @@ -53,13 +54,13 @@ import static org.junit.Assert.assertNotNull; import static org.junit.Assert.assertNull; import static org.junit.Assert.assertThat; +import static org.junit.Assert.assertTrue; import static org.springframework.test.context.TestExecutionListeners.MergeMode.MERGE_WITH_DEFAULTS; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = {DynamoDBLocalResource.class, CRUDOperationsIT.TestAppConfig.class}) @TestExecutionListeners(listeners = TableCreationListener.class, mergeMode = MERGE_WITH_DEFAULTS) -@DynamoDBCreateTable(entityClasses = {User.class}) -@Ignore +@DynamoDBCreateTable(entityClasses = {User.class, Playlist.class}) public class CRUDOperationsIT { @Rule @@ -74,11 +75,14 @@ public static class TestAppConfig { private UserRepository userRepository; @Autowired private UserPaginationRepository userPaginationRepository; + @Autowired + private PlaylistRepository playlistRepository; @Before public void setUp() { userRepository.deleteAll(); userPaginationRepository.deleteAll(); + playlistRepository.deleteAll(); } @Test @@ -188,6 +192,23 @@ public void testDeleteNonExistent() { userRepository.deleteById("non-existent"); } + @Test + public void testDeleteHashRangeKey() { + // setup + long rnd = ThreadLocalRandom.current().nextLong(); + Playlist p = new Playlist(); + p.setPlaylistName("playlistName-" + rnd); + p.setUserName("userName-" + rnd); + + playlistRepository.save(p); + + PlaylistId id = new PlaylistId("userName-" + rnd, "playlistName-" + rnd); + assertTrue("Entity with id not found: " + id, playlistRepository.findById(id).isPresent()); + + playlistRepository.deleteById(id); + assertFalse("Entity with id not deleted: " + id, playlistRepository.findById(id).isPresent()); + } + @Test public void testFilterAndPagination() { diff --git a/src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/PlaylistRepository.java b/src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/PlaylistRepository.java index 1a40a7f0..9864df72 100644 --- a/src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/PlaylistRepository.java +++ b/src/test/java/org/socialsignin/spring/data/dynamodb/domain/sample/PlaylistRepository.java @@ -15,8 +15,10 @@ */ package org.socialsignin.spring.data.dynamodb.domain.sample; +import org.socialsignin.spring.data.dynamodb.repository.EnableScan; import org.springframework.data.repository.CrudRepository; +@EnableScan public interface PlaylistRepository extends CrudRepository { }