66import com .marklogic .client .DatabaseClient ;
77import com .marklogic .client .document .DocumentPage ;
88import 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 ;
913import com .marklogic .client .io .StringHandle ;
14+ import com .marklogic .client .query .StructuredQueryBuilder ;
15+ import com .marklogic .client .query .StructuredQueryDefinition ;
1016import com .marklogic .client .test .Common ;
17+ import org .junit .jupiter .api .Disabled ;
1118import org .junit .jupiter .api .Test ;
1219
1320import static org .junit .jupiter .api .Assertions .assertEquals ;
@@ -20,13 +27,46 @@ void test() {
2027 Common .deleteUrisWithPattern ("/aaa-page/*" );
2128
2229 final String uri = "/aaa-page/太田佳伸のXMLファイル.xml" ;
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" ;
2347 DatabaseClient client = Common .newClient ();
24- client .newXMLDocumentManager ().write (uri , Common .newDefaultMetadata (),
25- new StringHandle ("<test>太田佳伸のXMLファイル</test>" ));
2648
27- DocumentPage page = client .newXMLDocumentManager ().read (uri );
28- assertTrue (page .hasNext ());
29- DocumentRecord record = page .next ();
30- assertEquals (uri , record .getUri ());
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+ protected void writeEmptyDocWithFileExtension (DatabaseClient client , String ... collections ) {
62+ DocumentMetadataHandle metadata = new DocumentMetadataHandle ()
63+ .withCollections (collections )
64+ .withPermission ("rest-reader" , DocumentMetadataHandle .Capability .READ , DocumentMetadataHandle .Capability .UPDATE );
65+ GenericDocumentManager mgr = client .newDocumentManager ();
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