1
1
package net .lecousin .reactive .data .relational .test .arraycolumns ;
2
2
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 ;
7
7
import org .junit .jupiter .api .Assertions ;
8
8
import org .junit .jupiter .api .Test ;
9
9
import org .springframework .beans .factory .annotation .Autowired ;
10
10
import org .springframework .data .r2dbc .repository .config .EnableR2dbcRepositories ;
11
11
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 ;
16
16
17
17
@ EnableR2dbcRepositories (repositoryFactoryBeanClass = LcR2dbcRepositoryFactoryBean .class )
18
18
public abstract class AbstractTestArrayColumns extends AbstractLcReactiveDataRelationalTest {
@@ -22,7 +22,7 @@ public abstract class AbstractTestArrayColumns extends AbstractLcReactiveDataRel
22
22
23
23
@ Override
24
24
protected Collection <Class <?>> usedEntities () {
25
- return Arrays .asList (EntityWithArrays .class );
25
+ return Arrays .asList (EntityWithArrays .class , UpdateableCollectionProperties . class );
26
26
}
27
27
28
28
@ Test
@@ -33,6 +33,7 @@ public void testEmptyArrays() {
33
33
entity = repo1 .findAll ().blockFirst ();
34
34
Assertions .assertTrue (entity .getIntegers () == null || entity .getIntegers ().length == 0 );
35
35
Assertions .assertTrue (entity .getPrimitiveIntegers () == null || entity .getPrimitiveIntegers ().length == 0 );
36
+ Assertions .assertTrue (entity .getIntegerList () == null || entity .getIntegerList ().size () == 0 );
36
37
}
37
38
38
39
@ Test
@@ -58,6 +59,7 @@ public void testArraysWithOneElement() {
58
59
entity .setDoubleList (Arrays .asList (4.5d ));
59
60
entity .setStrings (new String [] { "test1" });
60
61
entity .setStringList (Arrays .asList ("test2" ));
62
+ entity .setStringSet (Set .of ("test3" ));
61
63
repo1 .save (entity ).block ();
62
64
63
65
entity = repo1 .findAll ().blockFirst ();
@@ -141,6 +143,10 @@ public void testArraysWithOneElement() {
141
143
Assertions .assertNotNull (entity .getStringList ());
142
144
Assertions .assertEquals (1 , entity .getStringList ().size ());
143
145
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 ());
144
150
145
151
// update an element in the array
146
152
entity .getIntegers ()[0 ] = 12345 ;
@@ -197,4 +203,39 @@ public void testSearchEntityHavingAnArrayContaining() {
197
203
.collectList ().block ();
198
204
Assertions .assertEquals (2 , list .size ());
199
205
}
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
+ }
200
241
}
0 commit comments