@@ -158,6 +158,44 @@ public void insertDocumentOverwriteReturnOld() {
158
158
assertThat (collection .count ().getCount (), is (initialCount + 1L ));
159
159
}
160
160
161
+ @ Test
162
+ public void insertDocumentOverwriteModeReplace () {
163
+ assumeTrue (isAtLeastVersion (3 , 7 ));
164
+
165
+ String key = "key-" + UUID .randomUUID ().toString ();
166
+ final BaseDocument doc = new BaseDocument (key );
167
+ doc .addAttribute ("foo" , "a" );
168
+ final DocumentCreateEntity <BaseDocument > meta = collection .insertDocument (doc );
169
+
170
+ final BaseDocument doc2 = new BaseDocument (key );
171
+ doc2 .addAttribute ("bar" , "b" );
172
+ final DocumentCreateEntity <BaseDocument > repsert = collection
173
+ .insertDocument (doc2 , new DocumentCreateOptions ().overwriteMode (OverwriteMode .replace ).returnNew (true ));
174
+
175
+ assertThat (repsert , is (notNullValue ()));
176
+ assertThat (repsert .getRev (), is (not (meta .getRev ())));
177
+ assertThat (repsert .getNew ().getProperties ().containsKey ("foo" ), is (false ));
178
+ assertThat (repsert .getNew ().getAttribute ("bar" ).toString (), is ("b" ));
179
+ }
180
+
181
+ @ Test
182
+ public void insertDocumentOverwriteModeUpdate () {
183
+ assumeTrue (isAtLeastVersion (3 , 7 ));
184
+
185
+ final BaseDocument doc = new BaseDocument ();
186
+ doc .addAttribute ("foo" , "a" );
187
+ final DocumentCreateEntity <BaseDocument > meta = collection .insertDocument (doc );
188
+
189
+ doc .addAttribute ("bar" , "b" );
190
+ final DocumentCreateEntity <BaseDocument > upsert = collection
191
+ .insertDocument (doc , new DocumentCreateOptions ().overwriteMode (OverwriteMode .update ).returnNew (true ));
192
+
193
+ assertThat (upsert , is (notNullValue ()));
194
+ assertThat (upsert .getRev (), is (not (meta .getRev ())));
195
+ assertThat (upsert .getNew ().getAttribute ("foo" ).toString (), is ("a" ));
196
+ assertThat (upsert .getNew ().getAttribute ("bar" ).toString (), is ("b" ));
197
+ }
198
+
161
199
@ Test
162
200
public void insertDocumentWaitForSync () {
163
201
final DocumentCreateOptions options = new DocumentCreateOptions ().waitForSync (true );
@@ -1506,6 +1544,35 @@ public void insertDocumentsOverwrite() {
1506
1544
}
1507
1545
}
1508
1546
1547
+ @ Test
1548
+ public void insertDocumentsOverwriteModeUpdate () {
1549
+ assumeTrue (isAtLeastVersion (3 , 7 ));
1550
+
1551
+ final BaseDocument doc1 = new BaseDocument ();
1552
+ doc1 .addAttribute ("foo" , "a" );
1553
+ final DocumentCreateEntity <BaseDocument > meta1 = collection .insertDocument (doc1 );
1554
+
1555
+ final BaseDocument doc2 = new BaseDocument ();
1556
+ doc2 .addAttribute ("foo" , "a" );
1557
+ final DocumentCreateEntity <BaseDocument > meta2 = collection .insertDocument (doc2 );
1558
+
1559
+ doc1 .addAttribute ("bar" , "b" );
1560
+ doc2 .addAttribute ("bar" , "b" );
1561
+
1562
+ final MultiDocumentEntity <DocumentCreateEntity <BaseDocument >> repsert = collection
1563
+ .insertDocuments (Arrays .asList (doc1 , doc2 ),
1564
+ new DocumentCreateOptions ().overwriteMode (OverwriteMode .update ).returnNew (true ));
1565
+ assertThat (repsert , is (notNullValue ()));
1566
+ assertThat (repsert .getDocuments ().size (), is (2 ));
1567
+ assertThat (repsert .getErrors ().size (), is (0 ));
1568
+ for (final DocumentCreateEntity <BaseDocument > documentCreateEntity : repsert .getDocuments ()) {
1569
+ assertThat (documentCreateEntity .getRev (), is (not (meta1 .getRev ())));
1570
+ assertThat (documentCreateEntity .getRev (), is (not (meta2 .getRev ())));
1571
+ assertThat (documentCreateEntity .getNew ().getAttribute ("foo" ).toString (), is ("a" ));
1572
+ assertThat (documentCreateEntity .getNew ().getAttribute ("bar" ).toString (), is ("b" ));
1573
+ }
1574
+ }
1575
+
1509
1576
@ Test
1510
1577
public void insertDocumentsJson () {
1511
1578
final Collection <String > values = new ArrayList <>();
0 commit comments