@Test public void testSchemaRoundtrip() throws Exception { System.out.println("===[ testSchemaRoundtrip ]==="); // GIVEN PrismContext ctx = constructInitializedPrismContext(); schemaRoundtrip(ctx); }
@Test public void testSchemaRoundtripLoopShareContext() throws Exception { System.out.println("===[ testSchemaRoundtripLoopShareContext ]==="); PrismContext ctx = constructInitializedPrismContext(); for(int i=0; i < SCHEMA_ROUNDTRIP_LOOP_ATTEMPTS; i++) { System.out.println("\n--- attempt "+i+"---"); schemaRoundtrip(ctx); } }
@Test public void testSchemaRoundtripLoopNewContext() throws Exception { System.out.println("===[ testSchemaRoundtripLoopNewContext ]==="); for(int i=0; i < SCHEMA_ROUNDTRIP_LOOP_ATTEMPTS; i++) { System.out.println("\n--- attempt "+i+"---"); PrismContext ctx = constructInitializedPrismContext(); schemaRoundtrip(ctx); } }
@Test public void testConstructSchema() throws SchemaException, SAXException, IOException { System.out.println("===[ testConstructSchema ]==="); // GIVEN PrismContext ctx = constructInitializedPrismContext(); // WHEN PrismSchema schema = constructSchema(ctx); // THEN System.out.println("Constructed schema"); System.out.println(schema.debugDump()); assertSchema(schema); }
@Test(enabled = false, expectedExceptions = SchemaException.class) public void test110ParseWrongNamespaceStrict() throws Exception { final String TEST_NAME = "test110ParseWrongNamespaceStrict"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); // WHEN+THEN PrismObject<UserType> user = prismContext.parseObject(WRONG_NAMESPACE_FILE); System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); }
@Test public void testSchemaToDom() throws SchemaException, SAXException, IOException { System.out.println("===[ testSchemaToDom ]==="); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); PrismSchema fooSchema = prismContext.getSchemaRegistry().findSchemaByNamespace(NS_FOO); // WHEN Document fooXsd = fooSchema.serializeToXsd(); // THEN assertNotNull("No foo XSD DOM", fooXsd); }
@Test(expectedExceptions = SchemaException.class) public void test010ParseWrongItemStrict() throws Exception { final String TEST_NAME = "testParseWrongItemStrict"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); // WHEN+THEN try { prismContext.parseObject(WRONG_ITEM_FILE); } catch (SchemaException e) { e.printStackTrace(); throw e; } }
@Test public void test120ParseWrongNamespaceCompat() throws Exception { final String TEST_NAME = "test120ParseWrongNamespaceCompat"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); // WHEN PrismObject<UserType> user = prismContext.parserFor(WRONG_NAMESPACE_FILE).compat().parse(); // THEN System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); }
@Test public void test020ParseWrongItemCompat() throws Exception { final String TEST_NAME = "testParseWrongItemCompat"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); // WHEN PrismObject<UserType> user = prismContext.parserFor(WRONG_ITEM_FILE).compat().parse(); // THEN System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); }
@Test public void test100PrismParseFile() throws Exception { final String TEST_NAME = "test100PrismParseFile"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); // WHEN PrismObject<UserType> user = prismContext.parseObject(getFile(USER_JACK_FILE_BASENAME)); // THEN System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); assertUserJack(user, true); }
@Test public void test110PrismParseFileNoNs() throws Exception { final String TEST_NAME = "test110PrismParseFileNoNs"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); // WHEN PrismObject<UserType> user = prismContext.parseObject(getFile(USER_JACK_NO_NS_BASENAME)); // THEN System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); assertUserJack(user, true); }
@Test public void test120PrismParseFileObject() throws Exception { final String TEST_NAME = "test120PrismParseFileObject"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); // WHEN PrismObject<UserType> user = prismContext.parseObject(getFile(USER_JACK_OBJECT_BASENAME)); // THEN System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); assertUserJack(user, true); }
@Test public void test130PrismParseFileAdhoc() throws Exception { final String TEST_NAME = "test130PrismParseFileAdhoc"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); // WHEN PrismObject<UserType> user = prismContext.parseObject(getFile(USER_JACK_ADHOC_BASENAME)); // THEN System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); assertUserAdhoc(user, true); }
@Test public void test400UserWill() throws Exception { final String TEST_NAME = "test400UserWill"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); // WHEN PrismObject<UserType> user = prismContext.parseObject(getFile(USER_WILL_FILE_BASENAME)); // THEN System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); assertUserWill(user); }
@Test public void testPrefixMapper() throws SchemaException, SAXException, IOException { System.out.println("===[ testPrefixMapper ]==="); // WHEN PrismContextImpl prismContext = constructInitializedPrismContext(); // THEN assertNotNull("No prism context", prismContext); SchemaRegistry schemaRegistry = prismContext.getSchemaRegistry(); assertNotNull("No schema registry in context", schemaRegistry); DynamicNamespacePrefixMapper prefixMapper = schemaRegistry.getNamespacePrefixMapper(); System.out.println("Prefix mapper:"); System.out.println(DebugUtil.dump(prefixMapper)); assertEquals("Wrong foo prefix", "", prefixMapper.getPrefix(NS_FOO)); assertEquals("Wrong xsd prefix", DOMUtil.NS_W3C_XML_SCHEMA_PREFIX, prefixMapper.getPrefix(XMLConstants.W3C_XML_SCHEMA_NS_URI)); }
@Test public void testPrismParseDom() throws Exception { final String TEST_NAME = "testPrismParseDom"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN Document document = DOMUtil.parseFile(getFile(USER_JACK_FILE_BASENAME)); Element userElement = DOMUtil.getFirstChildElement(document); PrismContext prismContext = constructInitializedPrismContext(); // WHEN PrismObject<UserType> user = prismContext.parserFor(userElement).parse(); // THEN System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); assertUserJack(user, true); }
@Test public void testPrismParseDomAdhoc() throws Exception { final String TEST_NAME = "testPrismParseDomAdhoc"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN Document document = DOMUtil.parseFile(getFile(USER_JACK_ADHOC_BASENAME)); Element userElement = DOMUtil.getFirstChildElement(document); PrismContext prismContext = constructInitializedPrismContext(); // WHEN PrismObject<UserType> user = prismContext.parserFor(userElement).parse(); // THEN System.out.println("User:"); System.out.println(user.debugDump()); assertNotNull(user); assertUserAdhoc(user, true); }
@Test public void testCloneEquals() throws Exception { final String TEST_NAME = "testCloneEquals"; PrismInternalTestUtil.displayTestTitle(TEST_NAME); // GIVEN PrismContext ctx = constructInitializedPrismContext(); PrismObjectDefinition<UserType> userDefinition = getFooSchema(ctx).findObjectDefinitionByElementName(new QName(NS_FOO,"user")); PrismObject<UserType> user = userDefinition.instantiate(); fillInUserDrake(user, true); PrismObject<UserType> clone = user.clone(); // WHEN, THEN assertTrue("Clone not equal", clone.equals(user)); assertTrue("Clone not equivalent", clone.equivalent(user)); }
@Test public void testCompileTimeClassmap() throws SchemaException, SAXException, IOException { System.out.println("===[ testCompileTimeClassmap ]==="); // WHEN PrismContext prismContext = constructInitializedPrismContext(); // THEN assertNotNull("No prism context", prismContext); SchemaRegistry schemaRegistry = prismContext.getSchemaRegistry(); assertNotNull("No schema registry in context", schemaRegistry); SchemaDescription fooDesc = schemaRegistry.findSchemaDescriptionByNamespace(NS_FOO); Map<QName, Class<?>> map = fooDesc.getXsdTypeTocompileTimeClassMap(); assertNotNull("No XsdTypeTocompileTimeClassMap", map); assertFalse("Empty XsdTypeTocompileTimeClassMap", map.isEmpty()); assertMapping(map, UserType.class, USER_TYPE_QNAME); assertMapping(map, AccountType.class, ACCOUNT_TYPE_QNAME); assertMapping(map, AssignmentType.class, ASSIGNMENT_TYPE_QNAME); assertMapping(map, ActivationType.class, ACTIVATION_TYPE_QNAME); // This is not a container, but it should be in the map anyway assertMapping(map, AccountConstructionType.class, ACCOUNT_CONSTRUCTION_TYPE_QNAME); }
@Test public void testDiffPatchRoundTrip() throws SchemaException, SAXException, IOException { final String TEST_NAME="testDiffPatchRoundTrip"; displayTestTitle(TEST_NAME); // GIVEN PrismContext prismContext = constructInitializedPrismContext(); PrismObject<UserType> jackOriginal = prismContext.parseObject(getFile(USER_JACK_FILE_BASENAME)); PrismObject<UserType> jackModified = prismContext.parseObject(getFile(USER_JACK_MODIFIED_FILE_BASENAME)); ObjectDelta<UserType> jackDelta = jackOriginal.diff(jackModified); // System.out.println("jackOriginal:\n" + prismContext.getXnodeProcessor().serializeObject(jackOriginal).debugDump(1)); // System.out.println("jackModified:\n" + prismContext.getXnodeProcessor().serializeObject(jackModified).debugDump(1)); // System.out.println("jackDelta:\n" + jackDelta.debugDump()); jackDelta.assertDefinitions(); jackDelta.checkConsistence(true, true, true); // WHEN jackDelta.applyTo(jackOriginal); // System.out.println("jackOriginal after applying delta:\n" + prismContext.getXnodeProcessor().serializeObject(jackOriginal).debugDump(1)); // THEN assertTrue("Roundtrip failed", jackOriginal.equivalent(jackModified)); }