public static void assertSubnode(MapXNode xmap, QName key, Class expectedClass) { XNode xsubnode = xmap.get(key); assert xsubnode != null : "No subnode "+key+" in "+xmap; assert expectedClass.isAssignableFrom(xsubnode.getClass()) : "Wrong class of subnode "+key+" in "+xmap+"; expected "+expectedClass+", got "+xsubnode.getClass(); }
@Test public void testParseSerialize() throws Exception{ displayTestTitle("testParseSerialize"); PrismContext prismContext = getPrismContext(); PrismParser parser = prismContext.parserFor(getFile()); PrismContainerValue<MappingType> mappingPval = parser.parseItemValue(); System.out.println("\nmappingPval:\n"+mappingPval.debugDump(1)); PrismSerializer<RootXNode> serializer = prismContext.xnodeSerializer(); RootXNode xnode = serializer.root(new QName("dummy")).serialize(mappingPval); System.out.println("\nSerialized xnode:\n"+xnode.debugDump(1)); MapXNode xexpression = (MapXNode)((MapXNode)xnode.getSubnode()).get(new QName("expression")); ListXNode xconstList = (ListXNode) xexpression.get(new QName("const")); XNode xconst = xconstList.get(0); if (!(xconst instanceof PrimitiveXNode<?>)) { AssertJUnit.fail("const is not primitive: "+xconst); } }
private void assertDummyResource(PrismObject<ResourceType> resource, boolean fromRepo) { PrismContainer<Containerable> configurationPropertiesContainer = assertResource(resource, "Dummy Resource", RESOURCE_DUMMY_NAMESPACE, dummyConnector.getOid(), fromRepo); PrismProperty<ProtectedStringType> guardedProperty = configurationPropertiesContainer.findProperty( new ItemName(CONNECTOR_DUMMY_NAMESPACE, "uselessGuardedString")); // The resource was pulled from the repository. Therefore it does not have the right schema here. We should proceed with caution // and inspect the DOM elements there assertNotNull("No uselessGuardedString property in configuration properties", guardedProperty); PrismPropertyValue<ProtectedStringType> guardedPVal = guardedProperty.getValue(); if (fromRepo) { Object passwordRawElement = guardedPVal.getRawElement(); if (!(passwordRawElement instanceof MapXNode)) { AssertJUnit.fail("Expected password value of type "+ MapXNode.class+" but got "+passwordRawElement.getClass()); } MapXNode passwordXNode = (MapXNode) passwordRawElement; assertTrue("uselessGuardedString was not encrypted (clearValue)", passwordXNode.get(new QName("clearValue")) == null); assertTrue("uselessGuardedString was not encrypted (no encryptedData)", passwordXNode.get(new QName("encryptedData")) != null); } else { ProtectedStringType psType = guardedPVal.getValue(); assertNull("uselessGuardedString was not encrypted (clearValue)", psType.getClearValue()); assertNotNull("uselessGuardedString was not encrypted (no EncryptedData)", psType.getEncryptedDataType()); } }
RawType val = valueElements.get(0); MapXNode valXNode = (MapXNode) val.serializeToXNode(); PrimitiveXNode clearValueNode = (PrimitiveXNode) valXNode.get(ProtectedStringType.F_CLEAR_VALUE); val.getParsedValue(null, null);
PrismAsserts.assertSize(xFilter, 1); PrismAsserts.assertSubnode(xFilter, AndFilter.ELEMENT_NAME, MapXNode.class); MapXNode xandmap = (MapXNode) xFilter.get(AndFilter.ELEMENT_NAME); PrismAsserts.assertSize(xandmap, 1); PrismAsserts.assertSubnode(xandmap, EqualFilter.ELEMENT_NAME, ListXNode.class); ListXNode xequalsList = (ListXNode) xandmap.get(EqualFilter.ELEMENT_NAME); PrismAsserts.assertSize(xequalsList, 2);
PrismAsserts.assertSize(xFilter, 1); PrismAsserts.assertSubnode(xFilter, AndFilter.ELEMENT_NAME, MapXNodeImpl.class); MapXNodeImpl xandmap = (MapXNodeImpl) xFilter.get(AndFilter.ELEMENT_NAME); PrismAsserts.assertSize(xandmap, 1); PrismAsserts.assertSubnode(xandmap, EqualFilter.ELEMENT_NAME, ListXNodeImpl.class);