Skip to content

Commit dbb0c27

Browse files
Ajit GeorgeAjit George
Ajit George
authored and
Ajit George
committed
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)