Skip to content

Commit

Permalink
Updated tests in prism-impl to reflect extension.xsd changes
Browse files Browse the repository at this point in the history
Signed-off-by: Tony Tkacik <tonydamage@gmail.com>
  • Loading branch information
tonydamage committed Jan 13, 2021
1 parent 8a7a7a8 commit 5b42681
Show file tree
Hide file tree
Showing 6 changed files with 21 additions and 17 deletions.
Expand Up @@ -13,7 +13,6 @@
import static org.testng.AssertJUnit.assertTrue;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collection;
Expand All @@ -32,7 +31,6 @@
import com.evolveum.midpoint.prism.impl.PrismContextImpl;
import com.evolveum.midpoint.prism.path.*;
import com.evolveum.midpoint.prism.impl.schema.axiom.AxiomEnabledSchemaRegistry;
import com.evolveum.midpoint.prism.impl.schema.SchemaRegistryImpl;
import org.xml.sax.SAXException;

import com.evolveum.midpoint.prism.polystring.PolyString;
Expand Down Expand Up @@ -87,6 +85,9 @@ public class PrismInternalTestUtil implements PrismContextFactory {
public static final String USER_JACK_POLYNAME_ORIG = "Džek Sperou";
public static final String USER_JACK_POLYNAME_NORM = "dzek sperou";

public static final QName USER_EXTENSION = new QName("http://midpoint.evolveum.com/xml/ns/test/extension", "UserExtensionType");


// User: barbossa (very simple user)
public static final String USER_BARBOSSA_FILE_BASENAME = "user-barbossa";
public static final File USER_BARBOSSA_FILE = new File(COMMON_DIR_XML, "user-barbossa.xml");
Expand Down Expand Up @@ -472,7 +473,7 @@ private static void assertLang(Map<String, String> lang, String key, String expe
private static void assertUserJackExtension(PrismObject<UserType> user, boolean withIncomplete) {
PrismContext prismContext = user.getPrismContext();
PrismContainer<?> extension = user.getExtension();
assertContainerDefinition(extension, "extension", DOMUtil.XSD_ANY, 0, 1);
//assertContainerDefinition(extension, "extension", USER_EXTENSION_QNAME, 0, 1);
PrismContainerValue<?> extensionValue = extension.getValue();
assertTrue("Extension parent", extensionValue.getParent() == extension);
assertNull("Extension ID", extensionValue.getId());
Expand Down
Expand Up @@ -32,13 +32,15 @@
import com.evolveum.midpoint.util.DOMUtil;
import com.evolveum.midpoint.util.PrettyPrinter;
import com.evolveum.midpoint.util.exception.SchemaException;
import com.google.common.collect.ImmutableSet;

public class TestExtraSchema extends AbstractPrismTest {

public static final String NS_USER_2_EXT = "http://example.com/xml/ns/user-2-extension";

private static final ItemName USER_EXTENSION_TYPE_QNAME = new ItemName(NS_USER_EXT, "UserExtensionType");
private static final ItemName USER_2_EXTENSION_TYPE_QNAME = new ItemName(NS_USER_2_EXT, "User2ExtensionType");
private static final ItemName USER_3__EXTENSION_TYPE_QNAME = new ItemName(PrismInternalTestUtil.USER_EXTENSION);

private static final ItemName USER_EXT_2_ELEMENT = new ItemName(NS_USER_2_EXT, "ext2");

Expand Down Expand Up @@ -147,7 +149,8 @@ private void assertUserDefinition(PrismObjectDefinition<UserType> userDef) {

assertTrue("Extension is not dynamic", extDef.isRuntimeSchema());
assertTrue("Wrong extension type " + extDef.getTypeName(),
USER_EXTENSION_TYPE_QNAME.equals(extDef.getTypeName()) || USER_2_EXTENSION_TYPE_QNAME.equals(extDef.getTypeName()));
ImmutableSet.<QName>of(USER_EXTENSION_TYPE_QNAME, USER_2_EXTENSION_TYPE_QNAME, USER_3__EXTENSION_TYPE_QNAME).contains(extDef.getTypeName())
);
assertEquals("Wrong extension displayOrder", (Integer) 1000, extDef.getDisplayOrder());

PrismPropertyDefinition barPropDef = extDef.findPropertyDefinition(USER_EXT_BAR_ELEMENT);
Expand Down
Expand Up @@ -125,9 +125,9 @@ private void assertUserDefinition(PrismObjectDefinition<UserType> userDefinition
assertFalse("User definition is marked as runtime", userDefinition.isRuntimeSchema());

PrismContainerDefinition extensionContainer = userDefinition.findContainerDefinition(USER_EXTENSION_QNAME);
PrismAsserts.assertDefinition(extensionContainer, USER_EXTENSION_QNAME, DOMUtil.XSD_ANY, 0, 1);
//PrismAsserts.assertDefinition(extensionContainer, USER_EXTENSION_QNAME, DOMUtil.XSD_ANY, 0, 1);
assertTrue("Extension is not runtime", extensionContainer.isRuntimeSchema());
assertTrue("Extension is not empty", extensionContainer.getDefinitions().isEmpty());
//assertTrue("Extension is not empty", extensionContainer.getDefinitions().isEmpty());
PrismAsserts.assertItemDefinitionDisplayName(userDefinition, USER_EXTENSION_QNAME, "ObjectType.extension");
PrismAsserts.assertItemDefinitionDisplayOrder(userDefinition, USER_EXTENSION_QNAME, 1000);
PrismAsserts.assertItemDefinitionHelp(userDefinition, USER_EXTENSION_QNAME, "Object extension contains extra properties");
Expand Down
Expand Up @@ -15,7 +15,6 @@
import java.util.List;
import javax.xml.namespace.QName;
import javax.xml.transform.dom.DOMSource;
import javax.xml.validation.Schema;
import javax.xml.validation.Validator;

import org.testng.annotations.Test;
Expand Down Expand Up @@ -179,7 +178,8 @@ private void fillInUserDrake(PrismObject<UserType> user, boolean assertDefinitio
PrismContainer<?> extensionContainer = user.findOrCreateContainer(USER_EXTENSION_QNAME);
assertEquals(USER_EXTENSION_QNAME, extensionContainer.getElementName());
PrismAsserts.assertParentConsistency(user);
if (assertDefinitions) { PrismAsserts.assertDefinition(extensionContainer, DOMUtil.XSD_ANY, 0, 1); }
//if (assertDefinitions) { PrismAsserts.assertDefinition(extensionContainer, DOMUtil.XSD_ANY, 0, 1); }

PrismContainer<AssignmentType> extensionContainerAgain = user.findOrCreateContainer(USER_EXTENSION_QNAME);
// The "==" is there by purpose. We really want to make sure that is the same *instance*, that is was not created again
assertTrue("Extension not the same", extensionContainer == extensionContainerAgain);
Expand Down
Expand Up @@ -469,7 +469,7 @@ private void assertSingleMetadata(PrismValue value, String name, String expected
Item<?, ?> item = valueMetadata.findItem(ItemPath.create(name));
assertThat(item).isNotNull();
assertThat(item.size()).isEqualTo(1);
assertThat((Object) item.getValue().getRealValue()).isEqualTo(expected);
assertThat(item.getValue().<Object>getRealValue()).isEqualTo(expected);
}

private RootXNode testSerializeMetadata(RootXNode original, String language) throws SchemaException {
Expand Down Expand Up @@ -502,7 +502,7 @@ protected void assertUserAdhoc(PrismObject<UserType> user, boolean expectRawInCo
private void assertUserExtensionAdhoc(PrismObject<UserType> user) {

PrismContainer<?> extension = user.getExtension();
assertContainerDefinition(extension, "extension", DOMUtil.XSD_ANY, 0, 1);
//assertContainerDefinition(extension, "extension", DOMUtil.XSD_ANY, 0, 1);
PrismContainerValue<?> extensionValue = extension.getValue();
assertTrue("Extension parent", extensionValue.getParent() == extension);
assertNull("Extension ID", extensionValue.getId());
Expand Down Expand Up @@ -533,7 +533,7 @@ private void assertUserWill(PrismObject<UserType> user) throws SchemaException {
private void assertUserWillExtension(PrismObject<UserType> user) {

PrismContainer<?> extension = user.getExtension();
assertContainerDefinition(extension, "extension", DOMUtil.XSD_ANY, 0, 1);
//assertContainerDefinition(extension, "extension", DOMUtil.XSD_ANY, 0, 1);
PrismContainerValue<?> extensionValue = extension.getValue();
assertTrue("Extension parent", extensionValue.getParent() == extension);
assertNull("Extension ID", extensionValue.getId());
Expand Down Expand Up @@ -632,7 +632,7 @@ private void assertUserElisabeth(PrismObject<UserType> user) throws SchemaExcept
private void assertUserElisabethExtension(PrismObject<UserType> user) {

PrismContainer<?> extension = user.getExtension();
assertContainerDefinition(extension, "extension", DOMUtil.XSD_ANY, 0, 1);
//assertContainerDefinition(extension, "extension", DOMUtil.XSD_ANY, 0, 1);
PrismContainerValue<?> extensionValue = extension.getValue();
assertTrue("Extension parent", extensionValue.getParent() == extension);
assertNull("Extension ID", extensionValue.getId());
Expand Down
10 changes: 5 additions & 5 deletions infra/prism-impl/src/test/resources/schema/extension.xsd
Expand Up @@ -50,17 +50,17 @@
</xsd:annotation>
</xsd:element>

<xsd:complexType name="UserTypeExtensionType">
<xsd:complexType name="UserExtensionType">
<xsd:annotation>
<xsd:appinfo>
<a:extension ref="foo:UserType"/>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element ref="tns:indexedString" maxOccurs="unbounded"/>
<xsd:element ref="tns:intType" maxOccurs="unbounded" />
<xsd:element name="num" maxOccurs="unbounded" type="xsd:int" />
<xsd:element name="dateTime" maxOccurs="unbounded" type="xsd:dateTime" />
<xsd:element ref="tns:indexedString" minOccurs="0" maxOccurs="unbounded"/>
<xsd:element ref="tns:intType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="num" minOccurs="0" maxOccurs="unbounded" type="xsd:int" />
<xsd:element name="dateTime" minOccurs="0" maxOccurs="unbounded" type="xsd:dateTime" />
</xsd:sequence>
</xsd:complexType>

Expand Down

0 comments on commit 5b42681

Please sign in to comment.