Skip to content

Commit 4ec0e41

Browse files
authored
Merge pull request #1622 from marklogic/feature/650-metadatavalues-fix
DEVEXP-650 Fixing search that includes metadata values
2 parents 2d1e4e6 + 9c4b4c1 commit 4ec0e41

File tree

2 files changed

+25
-5
lines changed

2 files changed

+25
-5
lines changed

marklogic-client-api/src/main/java/com/marklogic/client/impl/OkHttpServices.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1627,7 +1627,7 @@ private void addCategoryParams(Set<Metadata> categories, RequestParameters param
16271627
}
16281628
}
16291629
private void addCategoryParam(RequestParameters params, Metadata category) {
1630-
addCategoryParam(params, category.name().toLowerCase());
1630+
addCategoryParam(params, category.toString().toLowerCase());
16311631
}
16321632
private void addCategoryParam(RequestParameters params, String category) {
16331633
params.add("category", category);

marklogic-client-api/src/test/java/com/marklogic/client/test/StringSearchTest.java

+24-4
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@
2020
import com.marklogic.client.ResourceNotFoundException;
2121
import com.marklogic.client.ResourceNotResendableException;
2222
import com.marklogic.client.admin.QueryOptionsManager;
23+
import com.marklogic.client.document.DocumentManager;
24+
import com.marklogic.client.document.DocumentPage;
25+
import com.marklogic.client.document.DocumentRecord;
26+
import com.marklogic.client.document.XMLDocumentManager;
2327
import com.marklogic.client.io.DocumentMetadataHandle;
2428
import com.marklogic.client.io.Format;
2529
import com.marklogic.client.io.SearchHandle;
@@ -32,17 +36,15 @@
3236
import org.junit.jupiter.api.Test;
3337
import org.slf4j.Logger;
3438
import org.slf4j.LoggerFactory;
35-
import org.xml.sax.SAXException;
3639

37-
import javax.xml.parsers.ParserConfigurationException;
3840
import java.io.ByteArrayOutputStream;
3941
import java.io.IOException;
4042

4143
import static org.junit.jupiter.api.Assertions.*;
4244

4345
public class StringSearchTest {
4446
@SuppressWarnings("unused")
45-
private static final Logger logger = (Logger) LoggerFactory.getLogger(StringSearchTest.class);
47+
private static final Logger logger = LoggerFactory.getLogger(StringSearchTest.class);
4648

4749
@BeforeAll
4850
public static void beforeClass() {
@@ -54,9 +56,27 @@ public static void beforeClass() {
5456
public static void afterClass() {
5557
}
5658

59+
@Test
60+
void returnDocumentsWithMetadataValues() {
61+
XMLDocumentManager mgr = Common.client.newXMLDocumentManager();
62+
mgr.write("/metadata/test.xml",
63+
new DocumentMetadataHandle().withMetadataValue("hello", "world"),
64+
new StringHandle("<test>metadataabc</test>"));
65+
66+
mgr.setMetadataCategories(DocumentManager.Metadata.METADATAVALUES);
67+
68+
DocumentPage page = mgr.search(Common.client.newQueryManager().newStructuredQueryBuilder().term("metadataabc"), 1);
69+
assertTrue(page.hasNext());
70+
71+
DocumentRecord record = page.next();
72+
assertEquals("/metadata/test.xml", record.getUri());
73+
DocumentMetadataHandle.DocumentMetadataValues values = record.getMetadata(new DocumentMetadataHandle()).getMetadataValues();
74+
assertEquals("world", values.get("hello"));
75+
}
76+
5777
@Test
5878
public void testStringSearch()
59-
throws IOException, ParserConfigurationException, SAXException, FailedRequestException, ForbiddenUserException,
79+
throws FailedRequestException, ForbiddenUserException,
6080
ResourceNotFoundException, ResourceNotResendableException
6181
{
6282
String optionsName = writeOptions();

0 commit comments

Comments
 (0)