package com.marklogic.client.schemasloader.impl; import com.marklogic.client.AbstractIntegrationTest; import com.marklogic.client.file.DocumentFile; import com.marklogic.client.helper.ClientHelper; import com.marklogic.client.io.DocumentMetadataHandle; import org.junit.Before; import org.junit.Test; import java.util.List; /** * Created by rrudin on 2/21/2017. */ public class LoadRulesetsTest extends AbstractIntegrationTest { /** * Wipes out the Schemas database - it's assumed you're not using the Schemas database for * anything besides ad hoc testing like this. */ @Before public void setup() { client = newClient("Schemas"); client.newServerEval().xquery("cts:uris((), (), cts:true-query()) ! xdmp:document-delete(.)").eval(); } @Test public void test() { DefaultSchemasLoader loader = new DefaultSchemasLoader(client); List<DocumentFile> files = loader.loadSchemas("src/test/resources/rulesets/collection-test"); assertEquals(2, files.size()); ClientHelper helper = new ClientHelper(client); List<String> collections = helper.getCollections("/ruleset1.xml"); assertEquals(1, collections.size()); assertTrue(collections.contains("ruleset-abc")); collections = helper.getCollections("/ruleset2.json"); assertEquals(2, collections.size()); assertTrue(collections.contains("ruleset-abc")); assertTrue(collections.contains("ruleset-xyz")); DocumentMetadataHandle.DocumentPermissions perms = helper.getMetadata("/ruleset1.xml").getPermissions(); assertEquals("Should have the two default perms plus the two custom ones", 4, perms.size()); assertEquals(DocumentMetadataHandle.Capability.READ, perms.get("rest-reader").iterator().next()); assertEquals(DocumentMetadataHandle.Capability.UPDATE, perms.get("rest-writer").iterator().next()); assertEquals(DocumentMetadataHandle.Capability.READ, perms.get("rest-admin").iterator().next()); assertEquals(DocumentMetadataHandle.Capability.UPDATE, perms.get("manage-admin").iterator().next()); } }