11package net .lecousin .reactive .data .relational .test .arraycolumns ;
22
3- import java . util . Arrays ;
4- import java . util . Collection ;
5- import java . util . List ;
6-
3+ import net . lecousin . reactive . data . relational . query . SelectQuery ;
4+ import net . lecousin . reactive . data . relational . query . criteria . Criteria ;
5+ import net . lecousin . reactive . data . relational . repository . LcR2dbcRepositoryFactoryBean ;
6+ import net . lecousin . reactive . data . relational . test . AbstractLcReactiveDataRelationalTest ;
77import org .junit .jupiter .api .Assertions ;
88import org .junit .jupiter .api .Test ;
99import org .springframework .beans .factory .annotation .Autowired ;
1010import org .springframework .data .r2dbc .repository .config .EnableR2dbcRepositories ;
1111
12- import net . lecousin . reactive . data . relational . query . SelectQuery ;
13- import net . lecousin . reactive . data . relational . query . criteria . Criteria ;
14- import net . lecousin . reactive . data . relational . repository . LcR2dbcRepositoryFactoryBean ;
15- import net . lecousin . reactive . data . relational . test . AbstractLcReactiveDataRelationalTest ;
12+ import java . util . Arrays ;
13+ import java . util . Collection ;
14+ import java . util . List ;
15+ import java . util . Set ;
1616
1717@ EnableR2dbcRepositories (repositoryFactoryBeanClass = LcR2dbcRepositoryFactoryBean .class )
1818public abstract class AbstractTestArrayColumns extends AbstractLcReactiveDataRelationalTest {
@@ -22,7 +22,7 @@ public abstract class AbstractTestArrayColumns extends AbstractLcReactiveDataRel
2222
2323 @ Override
2424 protected Collection <Class <?>> usedEntities () {
25- return Arrays .asList (EntityWithArrays .class );
25+ return Arrays .asList (EntityWithArrays .class , UpdateableCollectionProperties . class );
2626 }
2727
2828 @ Test
@@ -33,6 +33,7 @@ public void testEmptyArrays() {
3333 entity = repo1 .findAll ().blockFirst ();
3434 Assertions .assertTrue (entity .getIntegers () == null || entity .getIntegers ().length == 0 );
3535 Assertions .assertTrue (entity .getPrimitiveIntegers () == null || entity .getPrimitiveIntegers ().length == 0 );
36+ Assertions .assertTrue (entity .getIntegerList () == null || entity .getIntegerList ().size () == 0 );
3637 }
3738
3839 @ Test
@@ -58,6 +59,7 @@ public void testArraysWithOneElement() {
5859 entity .setDoubleList (Arrays .asList (4.5d ));
5960 entity .setStrings (new String [] { "test1" });
6061 entity .setStringList (Arrays .asList ("test2" ));
62+ entity .setStringSet (Set .of ("test3" ));
6163 repo1 .save (entity ).block ();
6264
6365 entity = repo1 .findAll ().blockFirst ();
@@ -141,6 +143,10 @@ public void testArraysWithOneElement() {
141143 Assertions .assertNotNull (entity .getStringList ());
142144 Assertions .assertEquals (1 , entity .getStringList ().size ());
143145 Assertions .assertEquals ("test2" , entity .getStringList ().get (0 ));
146+
147+ Assertions .assertNotNull (entity .getStringSet ());
148+ Assertions .assertEquals (1 , entity .getStringSet ().size ());
149+ Assertions .assertEquals ("test3" , entity .getStringSet ().iterator ().next ());
144150
145151 // update an element in the array
146152 entity .getIntegers ()[0 ] = 12345 ;
@@ -197,4 +203,39 @@ public void testSearchEntityHavingAnArrayContaining() {
197203 .collectList ().block ();
198204 Assertions .assertEquals (2 , list .size ());
199205 }
206+
207+ @ Test
208+ public void testArraysWithUpdateableCollectionProperties () {
209+ UpdateableCollectionProperties entity = new UpdateableCollectionProperties ();
210+ entity .setStrings1 (List .of ("1.1" ));
211+ entity .setStrings2 (Set .of ("2.1" ));
212+ entity .setStrings3 (List .of ("3.1" ));
213+ entity .setStrings4 (Set .of ("4.1" ));
214+
215+ entity = lcClient .save (entity ).block ();
216+ Assertions .assertEquals (List .of ("1.1" ), entity .getStrings1 ());
217+ Assertions .assertEquals (Set .of ("2.1" ), entity .getStrings2 ());
218+ Assertions .assertEquals (List .of ("3.1" ), entity .getStrings3 ());
219+ Assertions .assertEquals (Set .of ("4.1" ), entity .getStrings4 ());
220+ long id = entity .getId ();
221+
222+ entity .setStrings1 (List .of ("1.2" ));
223+ entity .setStrings2 (Set .of ("2.2" ));
224+ entity .setStrings3 (List .of ("3.2" ));
225+ entity .setStrings4 (Set .of ("4.2" ));
226+
227+ entity = lcClient .save (entity ).block ();
228+ Assertions .assertEquals (id , entity .getId ());
229+ Assertions .assertEquals (List .of ("1.2" ), entity .getStrings1 ());
230+ Assertions .assertEquals (Set .of ("2.2" ), entity .getStrings2 ());
231+ Assertions .assertEquals (List .of ("3.1" ), entity .getStrings3 ());
232+ Assertions .assertEquals (Set .of ("4.1" ), entity .getStrings4 ());
233+
234+ entity = SelectQuery .from (UpdateableCollectionProperties .class , "entity" ).execute (lcClient ).blockFirst ();
235+ Assertions .assertEquals (id , entity .getId ());
236+ Assertions .assertEquals (List .of ("1.2" ), entity .getStrings1 ());
237+ Assertions .assertEquals (Set .of ("2.2" ), entity .getStrings2 ());
238+ Assertions .assertEquals (List .of ("3.1" ), entity .getStrings3 ());
239+ Assertions .assertEquals (Set .of ("4.1" ), entity .getStrings4 ());
240+ }
200241}
0 commit comments