2121import org .springframework .test .context .ContextConfiguration ;
2222import org .springframework .test .context .junit4 .SpringJUnit4ClassRunner ;
2323
24+ import java .util .List ;
2425import java .util .Optional ;
2526import java .util .UUID ;
2627
3738public class HashRangeKeyIT {
3839
3940 @ Autowired
40- PlaylistRepository playlistRepository ;
41+ private PlaylistRepository playlistRepository ;
4142
42- @ Test
43- public void runCrudOperations () {
44- final String displayName = "displayName" + UUID .randomUUID ().toString ();
43+ private Playlist generatePlaylist (String genre , String displayName ) {
4544 final String userName = "userName-" + UUID .randomUUID ().toString ();
4645 final String playlistName = "playlistName-" + UUID .randomUUID ().toString ();
4746 PlaylistId id = new PlaylistId (userName , playlistName );
4847
49- Optional <Playlist > actual = playlistRepository .findById (id );
50- assertFalse (actual .isPresent ());
51-
5248 Playlist playlist = new Playlist (id );
5349 playlist .setDisplayName (displayName );
50+ playlist .setGenre (genre );
51+
52+ return playlist ;
53+ }
54+
55+ @ Test
56+ public void runCrudOperations () {
57+ String displayName = "displayName" + UUID .randomUUID ().toString ();
58+ Playlist playlist = generatePlaylist ("genre-" + UUID .randomUUID ().toString (), displayName );
59+ PlaylistId id = playlist .getId ();
60+
61+ Optional <Playlist > actual = playlistRepository .findById (id );
62+ assertFalse (actual .isPresent ());
5463
5564 playlistRepository .save (playlist );
5665
@@ -60,4 +69,16 @@ public void runCrudOperations() {
6069 assertEquals (id .getPlaylistName (), actual .get ().getPlaylistName ());
6170 assertEquals (id .getUserName (), actual .get ().getUserName ());
6271 }
72+
73+ @ Test
74+ public void testGsiSharedRange () {
75+ final String GENRE = "GENRE" ;
76+ playlistRepository .save (generatePlaylist (GENRE , "1" ));
77+ playlistRepository .save (generatePlaylist (GENRE , "2" ));
78+ playlistRepository .save (generatePlaylist (GENRE , "3" ));
79+
80+ List <Playlist > actual = playlistRepository .findByGenreAndPlaylistNameBetween (GENRE , "2" , "3" );
81+
82+ assertEquals (2 , actual .size ());
83+ }
6384}
0 commit comments