Skip to content

Commit c37b432

Browse files
committed
Replicating the stack trace
1 parent 1b329f1 commit c37b432

File tree

1 file changed

+50
-10
lines changed

1 file changed

+50
-10
lines changed

marklogic-client-api/src/test/java/com/marklogic/client/test/document/ReadDocumentPageTest.java

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,14 @@
44
package com.marklogic.client.test.document;
55

66
import com.marklogic.client.DatabaseClient;
7-
import com.marklogic.client.document.DocumentPage;
8-
import com.marklogic.client.document.DocumentRecord;
7+
import com.marklogic.client.document.*;
8+
import com.marklogic.client.io.BytesHandle;
9+
import com.marklogic.client.io.DocumentMetadataHandle;
910
import com.marklogic.client.io.StringHandle;
11+
import com.marklogic.client.query.StructuredQueryBuilder;
12+
import com.marklogic.client.query.StructuredQueryDefinition;
1013
import com.marklogic.client.test.Common;
14+
import org.junit.jupiter.api.Disabled;
1115
import org.junit.jupiter.api.Test;
1216

1317
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -20,13 +24,49 @@ void test() {
2024
Common.deleteUrisWithPattern("/aaa-page/*");
2125

2226
final String uri = "/aaa-page/太田佳伸のXMLファイル.xml";
23-
DatabaseClient client = Common.newClient();
24-
client.newXMLDocumentManager().write(uri, Common.newDefaultMetadata(),
25-
new StringHandle("<test>太田佳伸のXMLファイル</test>"));
26-
27-
DocumentPage page = client.newXMLDocumentManager().read(uri);
28-
assertTrue(page.hasNext());
29-
DocumentRecord record = page.next();
30-
assertEquals(uri, record.getUri());
27+
DocumentRecord documentRecord;
28+
try (DatabaseClient client = Common.newClient()) {
29+
client.newXMLDocumentManager().write(uri, Common.newDefaultMetadata(),
30+
new StringHandle("<test>太田佳伸のXMLファイル</test>"));
31+
32+
try (DocumentPage page = client.newXMLDocumentManager().read(uri)) {
33+
assertTrue(page.hasNext());
34+
documentRecord = page.next();
35+
}
36+
}
37+
assertEquals(uri, documentRecord.getUri());
38+
}
39+
40+
@Test
41+
@Disabled("Disabling for now because this seems to be a server bug.")
42+
void testEmptyDocWithNoExtension() {
43+
final String collection = "empty-binary-test";
44+
45+
try (DatabaseClient client = Common.newClient()) {
46+
writeEmptyDocWithFileExtension(client, collection);
47+
48+
JSONDocumentManager documentManager = client.newJSONDocumentManager();
49+
StructuredQueryDefinition query = new StructuredQueryBuilder().collection(collection);
50+
DocumentRecord documentRecord;
51+
try (DocumentPage documentPage = documentManager.search(query, 1)) {
52+
assertTrue(documentPage.hasNext(), "Expected a document in the page, but none was found.");
53+
documentRecord = documentPage.next();
54+
}
55+
String uri = documentRecord.getUri();
56+
assertEquals("/test/empty", uri, "The URI of the empty document should match the one written.");
57+
}
58+
}
59+
60+
protected void writeEmptyDocWithFileExtension(DatabaseClient client, String... collections) {
61+
DocumentMetadataHandle metadata = new DocumentMetadataHandle()
62+
.withCollections(collections)
63+
.withPermission("rest-reader", DocumentMetadataHandle.Capability.READ, DocumentMetadataHandle.Capability.UPDATE);
64+
// This needs to be a JSON document manager because the empty document is written without a format.
65+
JSONDocumentManager mgr = client.newJSONDocumentManager();
66+
DocumentWriteSet set = mgr.newWriteSet();
67+
BytesHandle emptyBytesHandle = new BytesHandle(new byte[0]);
68+
String uri = "/test/empty";
69+
set.add(uri, metadata, emptyBytesHandle);
70+
mgr.write(set);
3171
}
3272
}

0 commit comments

Comments
 (0)