Skip to content

Commit dbb0c27

Browse files
Ajit GeorgeAjit George
authored andcommitted
Test corrections for 32783 bulk write handles collections and quality
updates inconsistently and DST change
1 parent 71456db commit dbb0c27

File tree

3 files changed

+557
-518
lines changed

3 files changed

+557
-518
lines changed

test-complete/src/test/java/com/marklogic/client/functionaltest/TestBulkWriteMetadata2.java

Lines changed: 34 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -385,14 +385,29 @@ public void testWriteMultipleBinaryDocWithDefaultMetadata2() throws Exception
385385
docMgr.readMetadata(rec.getUri(), mh);
386386
assertEquals(" quality",5,mh.getQuality());
387387

388-
assertTrue("default collections reset",mh.getCollections().isEmpty());
388+
// Collections - Test corrected for bug fix from 32783
389+
/* Default collections are applied only in the following cases:
390+
391+
* Creating a document with single write without specifying collections
392+
* Creating a document or updating document content with bulk write without specifying collections
393+
* Resetting collections by deleting all or collection metadata
394+
*
395+
*/
396+
397+
String expectedCollections = "size:1|http://permission-collections/|";
398+
String actualCollections = getDocumentCollectionsString(mh.getCollections());
399+
400+
assertEquals("Document collections difference", expectedCollections, actualCollections);
389401

390402
page = docMgr.read("/1/mlfavicon.png");
391403
rec = page.next();
392404
docMgr.readMetadata(rec.getUri(), mh);
393405
assertEquals("default quality",0,mh.getQuality());
394406
// System.out.println(rec.getUri()+mh.getCollections().isEmpty());
395-
assertFalse("default collections reset",mh.getCollections().isEmpty());
407+
expectedCollections = "size:1|collection1|";
408+
actualCollections = getDocumentCollectionsString(mh.getCollections());
409+
410+
assertEquals("Document collections difference", expectedCollections, actualCollections);
396411

397412
page = docMgr.read("/2/mlfavicon.png");
398413
rec = page.next();
@@ -462,7 +477,10 @@ public void testWriteMultipleJSONDocsWithDefaultMetadata2() throws Exception
462477
jdm.readMetadata(rec.getUri(), mh);
463478
System.out.print(mh.getCollections().isEmpty());
464479
assertEquals("default quality",1,mh.getQuality());
465-
assertTrue("default collections reset",mh.getCollections().isEmpty());
480+
String expectedCollections = "size:1|http://permission-collections/|";
481+
String actualCollections = getDocumentCollectionsString(mh.getCollections());
482+
483+
assertEquals("Document collections difference", expectedCollections, actualCollections);
466484

467485
// Doc3 should have the system default document quality (0) because quality
468486
// was not included in the document-specific metadata. It should be in the
@@ -477,18 +495,20 @@ public void testWriteMultipleJSONDocsWithDefaultMetadata2() throws Exception
477495
DocumentMetadataHandle doc3Metadata =
478496
jdm.readMetadata("doc3.json", new DocumentMetadataHandle());
479497
System.out.println("doc3 quality: Expected=0, Actual=" + doc3Metadata.getPermissions());
480-
System.out.print("doc3 collections: Expected: myCollection, Actual=");
481-
for (String collection : doc3Metadata.getCollections()) {
482-
System.out.print(collection + " ");
483-
}
484-
System.out.println();
498+
expectedCollections = "size:1|mySpecificCollection|";
499+
actualCollections = getDocumentCollectionsString(mh.getCollections());
500+
501+
assertEquals("Document collections difference", expectedCollections, actualCollections);
485502

486503
// Doc 4 should also use the 1st batch default metadata, with quality 1
487504
page = jdm.read("doc4.json");
488505
rec = page.next();
489506
jdm.readMetadata(rec.getUri(), mh);
490507
assertEquals("default quality",1,mh.getQuality());
491-
assertTrue("default collections reset",mh.getCollections().isEmpty());
508+
expectedCollections = "size:1|http://permission-collections/|";
509+
actualCollections = getDocumentCollectionsString(mh.getCollections());
510+
511+
assertEquals("Document collections difference", expectedCollections, actualCollections);
492512
// Doc5 should use the 2nd batch default metadata, with quality 2
493513
page = jdm.read("doc5.json");
494514
rec = page.next();
@@ -553,7 +573,11 @@ public void testWriteGenericDocMgrWithDefaultMetadata() throws Exception
553573
DocumentRecord rec = page.next();
554574
docMgr.readMetadata(rec.getUri(), mh);
555575
assertEquals("default quality",10,mh.getQuality());
556-
assertTrue("default collections missing",mh.getCollections().isEmpty());
576+
577+
String expectedCollections = "size:1|http://permission-collections/|";
578+
String actualCollections = getDocumentCollectionsString(mh.getCollections());
579+
580+
assertEquals("Document collections difference", expectedCollections, actualCollections);
557581

558582
page = docMgr.read("/generic/foo.xml");
559583
rec = page.next();

test-complete/src/test/java/com/marklogic/client/functionaltest/TestBulkWriteMetadatawithRawXML.java

Lines changed: 42 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -402,8 +402,12 @@ public void testWriteMultipleJSONDocsWithRawJSONMetadata() throws Exception
402402
rec = page.next();
403403
jdm.readMetadata(rec.getUri(), mh);
404404
System.out.print(mh.getCollections().isEmpty());
405+
String expectedCollections = "size:1|http://permission-collections/|";
406+
String actualCollections = getDocumentCollectionsString(mh.getCollections());
407+
408+
assertEquals("Document collections difference", expectedCollections, actualCollections);
409+
405410
assertEquals("default quality",0,mh.getQuality());
406-
assertTrue("default collections reset",mh.getCollections().isEmpty());
407411

408412
// Doc3 should have the system default document quality (0) because quality
409413
// was not included in the document-specific metadata. It should be in the
@@ -485,31 +489,42 @@ public void testWriteGenericDocMgrWithDefaultMetadata() throws Exception
485489
assertEquals("default quality",0,mh1.getQuality());
486490
assertTrue("Properties contains value 19",mh1.getProperties().containsValue("19"));
487491

488-
page = docMgr.read("/generic/dog.json");
489-
rec = page.next();
490-
docMgr.readMetadata(rec.getUri(), mh1);
491-
assertEquals("default quality",10,mh1.getQuality());
492-
assertTrue("default collections missing",mh1.getCollections().isEmpty());
493-
494-
page = docMgr.read("/generic/foo1.txt");
495-
rec = page.next();
496-
docMgr.readMetadata(rec.getUri(), mh1);
497-
// until issue 24 is fixed
498-
//this.validateDefaultMetadata(mh1);
499-
assertEquals("default quality", 0, mh1.getQuality());
500-
501-
String actualPermissions = mh1.getPermissions().toString();
502-
System.out.println(actualPermissions);
503-
assertTrue("Default permissions must contain flexrep-eval=[READ]", actualPermissions.contains("flexrep-eval=[READ]"));
504-
assertTrue("Default permissions must contain rest-reader=[READ]", actualPermissions.contains("rest-reader=[READ]"));
505-
assertTrue("Default permissions must contain rest-writer=[UPDATE]", actualPermissions.contains("rest-writer=[UPDATE]"));
506-
507-
page = docMgr.read("/generic/foo.xml");
508-
rec = page.next();
509-
docMgr.readMetadata(rec.getUri(), mh1);
510-
assertEquals("default quality",0,mh1.getQuality());
511-
assertEquals("default collection must change","[http://Json-Uri-generic-collections/]",mh1.getCollections().toString());
512-
513-
}
492+
page = docMgr.read("/generic/dog.json");
493+
rec = page.next();
494+
docMgr.readMetadata(rec.getUri(), mh1);
495+
assertEquals("default quality", 10, mh1.getQuality());
496+
String expectedCollections = "size:1|http://permission-collections/|";
497+
String actualCollections = getDocumentCollectionsString(mh1.getCollections());
498+
499+
assertEquals("Document collections difference", expectedCollections, actualCollections);
500+
501+
page = docMgr.read("/generic/foo1.txt");
502+
rec = page.next();
503+
docMgr.readMetadata(rec.getUri(), mh1);
504+
expectedCollections = "size:1|http://permission-collections/|";
505+
actualCollections = getDocumentCollectionsString(mh1.getCollections());
506+
507+
assertEquals("Document collections difference", expectedCollections, actualCollections);
508+
509+
assertEquals("default quality", 0, mh1.getQuality());
510+
511+
String actualPermissions = mh1.getPermissions().toString();
512+
System.out.println(actualPermissions);
513+
assertTrue("Default permissions must contain flexrep-eval=[READ]",
514+
actualPermissions.contains("flexrep-eval=[READ]"));
515+
assertTrue("Default permissions must contain rest-reader=[READ]",
516+
actualPermissions.contains("rest-reader=[READ]"));
517+
assertTrue("Default permissions must contain rest-writer=[UPDATE]",
518+
actualPermissions.contains("rest-writer=[UPDATE]"));
519+
520+
page = docMgr.read("/generic/foo.xml");
521+
rec = page.next();
522+
docMgr.readMetadata(rec.getUri(), mh1);
523+
assertEquals("default quality", 0, mh1.getQuality());
524+
assertEquals("default collection must change",
525+
"[http://Json-Uri-generic-collections/]", mh1.getCollections()
526+
.toString());
527+
528+
}
514529

515530
}

0 commit comments

Comments
 (0)