private void roundTripAdhoc(File file) throws SchemaException, SAXException, IOException { // GIVEN PrismContext prismContext = constructInitializedPrismContext(); PrismObject<UserType> originalUser = prismContext.parseObject(file); System.out.println("Input parsed user:"); System.out.println(originalUser.debugDump()); assertNotNull(originalUser); // precondition assertUserAdhoc(originalUser, true); // WHEN // We need to serialize with composite objects during roundtrip, otherwise the result will not be equal String userXml = prismContext.serializeObjectToString(originalUser, getOutputFormat()); // THEN System.out.println("Serialized user:"); System.out.println(userXml); assertNotNull(userXml); validateXml(userXml, prismContext); // WHEN PrismObject<UserType> parsedUser = prismContext.parseObject(userXml); System.out.println("Re-parsed user:"); System.out.println(parsedUser.debugDump()); assertNotNull(parsedUser); assertUserAdhoc(parsedUser, true); assertTrue("Users not equal", originalUser.equals(parsedUser)); }
private void roundTrip(File file) throws SchemaException, SAXException, IOException { // GIVEN PrismContext prismContext = constructInitializedPrismContext(); PrismObject<UserType> originalUser = prismContext.parseObject(file); System.out.println("Input parsed user:"); System.out.println(originalUser.debugDump()); assertNotNull(originalUser); // precondition assertUserJack(originalUser, true); // WHEN // We need to serialize with composite objects during roundtrip, otherwise the result will not be equal String userXml = prismContext.serializerFor(getOutputFormat()).serialize(originalUser); // THEN System.out.println("Serialized user:"); System.out.println(userXml); assertNotNull(userXml); validateXml(userXml, prismContext); // WHEN PrismObject<UserType> parsedUser = prismContext.parseObject(userXml); System.out.println("Re-parsed user:"); System.out.println(parsedUser.debugDump()); assertNotNull(parsedUser); assertUserJack(parsedUser, true); ObjectDelta<UserType> diff = DiffUtil.diff(originalUser, parsedUser); System.out.println("Diff:"); System.out.println(diff.debugDump()); assertTrue("Diff: "+diff, diff.isEmpty()); assertTrue("Users not equal", originalUser.equals(parsedUser)); }