private void roundTripAdhoc(File file) throws SchemaException, SAXException, IOException {
PrismContext prismContext = constructInitializedPrismContext();
PrismObject<UserType> originalUser = prismContext.parseObject(file);
System.out.println("Input parsed user:");
System.out.println(originalUser.debugDump());
assertNotNull(originalUser);
assertUserAdhoc(originalUser, true);
String userXml = prismContext.serializeObjectToString(originalUser, getOutputFormat());
System.out.println("Serialized user:");
System.out.println(userXml);
assertNotNull(userXml);
validateXml(userXml, prismContext);
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));
}