1
2
3
4
5
6 package gov.nist.secauto.metaschema.databind;
7
8 import static org.junit.jupiter.api.Assertions.assertFalse;
9 import static org.junit.jupiter.api.Assertions.assertNotNull;
10
11 import gov.nist.secauto.metaschema.core.model.IAssemblyDefinition;
12 import gov.nist.secauto.metaschema.core.model.IConstraintLoader;
13 import gov.nist.secauto.metaschema.core.model.MetaschemaException;
14 import gov.nist.secauto.metaschema.core.model.constraint.IConstraint;
15 import gov.nist.secauto.metaschema.core.model.constraint.IConstraintSet;
16 import gov.nist.secauto.metaschema.databind.model.metaschema.BindingConstraintLoader;
17 import gov.nist.secauto.metaschema.core.qname.IEnhancedQName;
18 import gov.nist.secauto.metaschema.core.util.ObjectUtils;
19 import gov.nist.secauto.metaschema.databind.model.IBoundModule;
20 import gov.nist.secauto.metaschema.databind.model.test.TestMetaschema;
21
22 import org.junit.jupiter.api.Test;
23
24 import java.io.IOException;
25 import java.nio.file.Paths;
26 import java.util.List;
27
28 class IBindingContextTest {
29
30 @Test
31 void testConstraints() throws MetaschemaException, IOException {
32 IConstraintLoader constraintLoader = new BindingConstraintLoader(DefaultBindingContext.instance());
33 List<IConstraintSet> constraintSet = constraintLoader.load(
34 ObjectUtils.notNull(Paths.get("src/test/resources/content/constraints.xml")));
35
36 IBindingContext bindingContext = IBindingContext.builder()
37 .constraintSet(constraintSet)
38 .build();
39
40 IBoundModule module = bindingContext.registerModule(TestMetaschema.class);
41
42 IAssemblyDefinition root
43 = module.getExportedAssemblyDefinitionByName(
44 IEnhancedQName.of("https://csrc.nist.gov/ns/test/xml", "root").getIndexPosition());
45
46 assertNotNull(root, "root not found");
47 List<? extends IConstraint> constraints = root.getConstraints();
48 assertFalse(constraints.isEmpty(), "a constraint was expected");
49 }
50 }