private void doRoundtrip(PrismProperty<?> origProperty, ItemDefinition propDef, PrismContext prismContext) throws SchemaException, JAXBException { // WHEN List<JAXBElement<RawType>> valueElements = StaticExpressionUtil.serializeValueElements(origProperty, "here somewhere"); for (Object element: valueElements) { if (element instanceof JAXBElement) { System.out.println(PrismTestUtil.serializeJaxbElementToString((JAXBElement) element)); } else { AssertJUnit.fail("Unexpected element type "+element.getClass()); } } PrismProperty<String> parsedProperty = (PrismProperty<String>)(Item) StaticExpressionUtil.parseValueElements(valueElements, propDef, "here again"); // THEN assertEquals("Roundtrip failed", origProperty, parsedProperty); }
@Test(enabled = false) public void testTaskExtensionDeleteDelta() throws Exception { System.out.println("===[ testTaskExtensionDeleteDelta ]===="); // GIVEN PrismObject oldTask = PrismTestUtil.parseObject( new File(TEST_DIR, "task-old.xml")); PrismObject newTask = PrismTestUtil.parseObject( new File(TEST_DIR, "task-new.xml")); ObjectDelta<TaskType> delta = oldTask.diff(newTask, EquivalenceStrategy.LITERAL_IGNORE_METADATA); System.out.println("Delta:"); System.out.println(delta.debugDump()); final QName CUSTOM_OBJECT = new QName("http://delta.example.com", "object"); PrismContext context = getPrismContext(); // WHEN ObjectDeltaType xmlDelta = toObjectDeltaType(delta); // THEN Map<String, Object> properties = new HashMap<>(); String result = PrismTestUtil.serializeJaxbElementToString(new JAXBElement<>(CUSTOM_OBJECT, Object.class, xmlDelta)); assertNotNull(result); }
@Test public void testParseFilterFile() throws Exception { System.out.println("===[ testParseFilterFile ]==="); // GIVEN PrismContext prismContext = PrismTestUtil.getPrismContext(); // WHEN SearchFilterType filter = prismContext.parserFor(FILTER_FILE).parseRealValue(SearchFilterType.class); // THEN System.out.println("Parsed filter:"); System.out.println(filter.debugDump()); String serialized = PrismTestUtil.serializeJaxbElementToString(new JAXBElement<>( new QName(SchemaConstants.NS_QUERY, "filter"), SearchFilterType.class, filter)); System.out.println("JAXB serialization result:\n"+serialized); // WHEN2 SearchFilterType filter2 = prismContext.parserFor(serialized).parseRealValue(SearchFilterType.class); System.out.println("Reparsed filter:"); System.out.println(filter2.debugDump()); // THEN2 assertEquals("Parsed and serialized+parsed filters do not match", filter, filter2); }
@Test public void testMarshallObjectDeltaType() throws Exception { ObjectDeltaType delta = new ObjectDeltaType(); delta.setOid("07b32c14-0c18-460b-bd4a-99b96699f952"); delta.setChangeType(ChangeTypeType.MODIFY); ItemDeltaType item1 = new ItemDeltaType(); delta.getItemDelta().add(item1); item1.setModificationType(ModificationTypeType.REPLACE); Document document = DOMUtil.getDocument(); // Element path = document.createElementNS(SchemaConstantsGenerated.NS_TYPES, "path"); // path.setTextContent("c:credentials/c:password"); ItemPath path = ItemPath.create(SchemaConstantsGenerated.C_CREDENTIALS, CredentialsType.F_PASSWORD); item1.setPath(new ItemPathType(path)); ProtectedStringType protectedString = new ProtectedStringType(); protectedString.setEncryptedData(new EncryptedDataType()); RawType value = new RawType(((PrismContextImpl) PrismTestUtil.getPrismContext()).getBeanMarshaller().marshall(protectedString), PrismTestUtil.getPrismContext()); item1.getValue().add(value); String xml = PrismTestUtil.serializeJaxbElementToString( new JAXBElement<>(new QName("http://www.example.com", "custom"), Object.class, delta)); assertNotNull(xml); }