Skip to content

Commit 3b1a7f2

Browse files
committed
Replicating the stack trace
1 parent 1b329f1 commit 3b1a7f2

File tree

1 file changed

+49
-8
lines changed

1 file changed

+49
-8
lines changed

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

Lines changed: 49 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,15 @@
66
import com.marklogic.client.DatabaseClient;
77
import com.marklogic.client.document.DocumentPage;
88
import com.marklogic.client.document.DocumentRecord;
9+
import com.marklogic.client.document.GenericDocumentManager;
10+
import com.marklogic.client.document.DocumentWriteSet;
11+
import com.marklogic.client.io.BytesHandle;
12+
import com.marklogic.client.io.DocumentMetadataHandle;
913
import com.marklogic.client.io.StringHandle;
14+
import com.marklogic.client.query.StructuredQueryBuilder;
15+
import com.marklogic.client.query.StructuredQueryDefinition;
1016
import com.marklogic.client.test.Common;
17+
import org.junit.jupiter.api.Disabled;
1118
import org.junit.jupiter.api.Test;
1219

1320
import static org.junit.jupiter.api.Assertions.assertEquals;
@@ -20,13 +27,47 @@ void test() {
2027
Common.deleteUrisWithPattern("/aaa-page/*");
2128

2229
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());
30+
DocumentRecord documentRecord;
31+
try (DatabaseClient client = Common.newClient()) {
32+
client.newXMLDocumentManager().write(uri, Common.newDefaultMetadata(),
33+
new StringHandle("<test>太田佳伸のXMLファイル</test>"));
34+
35+
try (DocumentPage page = client.newXMLDocumentManager().read(uri)) {
36+
assertTrue(page.hasNext());
37+
documentRecord = page.next();
38+
}
39+
}
40+
assertEquals(uri, documentRecord.getUri());
41+
}
42+
43+
@Test
44+
@Disabled("Disabling for now because this seems to be a server bug.")
45+
void testEmptyDocWithNoExtension() {
46+
final String collection = "empty-binary-test";
47+
48+
try (DatabaseClient client = Common.newClient()) {
49+
writeEmptyDocWithFileExtension(client, collection);
50+
51+
GenericDocumentManager documentManager = client.newDocumentManager();
52+
StructuredQueryDefinition query = new StructuredQueryBuilder().collection(collection);
53+
DocumentRecord documentRecord;
54+
try (DocumentPage documentPage = documentManager.search(query, 1)) {
55+
documentRecord = documentPage.next();
56+
}
57+
String uri = documentRecord.getUri();
58+
assertEquals("/test/empty", uri, "The URI of the empty document should match the one written.");
59+
}
60+
}
61+
62+
protected void writeEmptyDocWithFileExtension(DatabaseClient client, String... collections) {
63+
DocumentMetadataHandle metadata = new DocumentMetadataHandle()
64+
.withCollections(collections)
65+
.withPermission("rest-reader", DocumentMetadataHandle.Capability.READ, DocumentMetadataHandle.Capability.UPDATE);
66+
GenericDocumentManager mgr = client.newDocumentManager();
67+
DocumentWriteSet set = mgr.newWriteSet();
68+
BytesHandle emptyBytesHandle = new BytesHandle(new byte[0]);
69+
String uri = "/test/empty";
70+
set.add(uri, metadata, emptyBytesHandle);
71+
mgr.write(set);
3172
}
3273
}

0 commit comments

Comments
 (0)