6
6
import com .marklogic .client .DatabaseClient ;
7
7
import com .marklogic .client .document .DocumentPage ;
8
8
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 ;
9
13
import com .marklogic .client .io .StringHandle ;
14
+ import com .marklogic .client .query .StructuredQueryBuilder ;
15
+ import com .marklogic .client .query .StructuredQueryDefinition ;
10
16
import com .marklogic .client .test .Common ;
17
+ import org .junit .jupiter .api .Disabled ;
11
18
import org .junit .jupiter .api .Test ;
12
19
13
20
import static org .junit .jupiter .api .Assertions .assertEquals ;
@@ -20,13 +27,47 @@ void test() {
20
27
Common .deleteUrisWithPattern ("/aaa-page/*" );
21
28
22
29
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 );
31
72
}
32
73
}
0 commit comments