diff --git a/gui/admin-gui/src/test/java/com/evolveum/midpoint/gui/TestIntegrationObjectWrapperFactory.java b/gui/admin-gui/src/test/java/com/evolveum/midpoint/gui/TestIntegrationObjectWrapperFactory.java index 7b5479c0778..7cf9595729c 100644 --- a/gui/admin-gui/src/test/java/com/evolveum/midpoint/gui/TestIntegrationObjectWrapperFactory.java +++ b/gui/admin-gui/src/test/java/com/evolveum/midpoint/gui/TestIntegrationObjectWrapperFactory.java @@ -208,6 +208,64 @@ private void assertContainersPaths(PrismObjectWrapper objectWrapper, Collecti assertEquals("wrong container paths in "+objectWrapper, expectedUniformPaths, realUniformPaths); } + @Test + public void test102CreateWrapperUserEmpty() throws Exception { + PrismObject user = getUser(USER_EMPTY_OID); + PrismObject userOld = user.clone(); + + // WHEN + when(); + + Task task = createTask(); + OperationResult result = task.getResult(); + + ModelServiceLocator modelServiceLocator = getServiceLocator(task); + PrismObjectWrapperFactory factory = modelServiceLocator.findObjectWrapperFactory(user.getDefinition()); + WrapperContext context = new WrapperContext(task, result); + + PrismObjectWrapper objectWrapper = factory.createObjectWrapper(user, ItemStatus.NOT_CHANGED, context); + + // THEN + then(); + + PrismTestUtil.display("Wrapper after", objectWrapper); + + WrapperTestUtil.assertWrapper(objectWrapper, getString("prismContainer.mainPanelDisplayName"), "user description", user, userOld, ItemStatus.NOT_CHANGED); + assertContainersPaths(objectWrapper, BASIC_USER_CONTAINERS_PATHS); + + WrapperTestUtil.assertWrapper(objectWrapper, getString("prismContainer.mainPanelDisplayName"), null, user, ItemStatus.NOT_CHANGED); + assertEquals("wrong number of containers in "+objectWrapper, 1, objectWrapper.getValues().size()); + PrismContainerValueWrapper mainContainerValueWrapper = objectWrapper.getValue(); + WrapperTestUtil.assertPropertyWrapperByName(mainContainerValueWrapper, UserType.F_NAME, PrismTestUtil.createPolyString(USER_EMPTY_USERNAME)); + WrapperTestUtil.assertPropertyWrapperByName(mainContainerValueWrapper, UserType.F_TIMEZONE, null); + + // Not sure about this +// ContainerWrapper activationContainerWrapper = objectWrapper.findContainer(ItemPath.create(UserType.F_ACTIVATION)); +// assertNull("Unexpected activation "+activationContainerWrapper, activationContainerWrapper); + + assertEquals("Wrong main container wrapper readOnly", Boolean.FALSE, (Boolean)objectWrapper.isReadOnly()); + + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_NAME, true); + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_GIVEN_NAME, true); // emphasized + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_FULL_NAME, true); // emphasized + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_ADDITIONAL_NAME, false); // empty + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_LOCALITY, false); // empty + + // WHEN + mainContainerValueWrapper.setShowEmpty(true); + + // THEN + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_NAME, true); + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_GIVEN_NAME, true); // emphasized + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_FULL_NAME, true); // emphasized + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_ADDITIONAL_NAME, true); // empty + assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_LOCALITY, true); // empty + + ObjectDelta objectDelta = objectWrapper.getObjectDelta(); + display("Delta", objectDelta); + assertTrue("non-empty delta produced from wrapper: "+objectDelta, objectDelta.isEmpty()); + } + /** * Create wrapper for brand new empty user. */ @@ -281,7 +339,7 @@ public void test112CreateWrapperUserNewman() throws Exception { PrismObject user = getUserDefinition().instantiate(); when(); - Task task = getTestTask(); + Task task = createTask(); OperationResult result = task.getResult(); ModelServiceLocator modelServiceLocator = getServiceLocator(task); @@ -309,7 +367,7 @@ public void test112CreateWrapperUserNewman() throws Exception { WrapperTestUtil.assertWrapper(objectWrapper, getString("prismContainer.mainPanelDisplayName"), null, user, ItemStatus.ADDED); assertEquals("wrong number of containers in "+objectWrapper, 1, objectWrapper.getValues().size()); WrapperTestUtil.assertPropertyWrapperByName(mainContainerValueWrapper, UserType.F_NAME, PrismTestUtil.createPolyString(USER_NEWMAN_USERNAME)); - WrapperTestUtil.assertPropertyWrapperByName(mainContainerValueWrapper, UserType.F_TIMEZONE); + WrapperTestUtil.assertPropertyWrapperByName(mainContainerValueWrapper, UserType.F_TIMEZONE, null); WrapperTestUtil.assertPropertyWrapper(mainContainerValueWrapper, extensionPath(PIRACY_SHIP), USER_NEWMAN_SHIP); PrismContainerWrapper activationContainerWrapper = objectWrapper.findContainer(UserType.F_ACTIVATION); @@ -350,64 +408,6 @@ public void test112CreateWrapperUserNewman() throws Exception { PrismAsserts.assertItems(objectToAdd, 5); } - @Test - public void test102CreateWrapperUserEmpty() throws Exception { - PrismObject user = getUser(USER_EMPTY_OID); - PrismObject userOld = user.clone(); - - // WHEN - when(); - - Task task = getTestTask(); - OperationResult result = task.getResult(); - - ModelServiceLocator modelServiceLocator = getServiceLocator(task); - PrismObjectWrapperFactory factory = modelServiceLocator.findObjectWrapperFactory(user.getDefinition()); - WrapperContext context = new WrapperContext(task, result); - - PrismObjectWrapper objectWrapper = factory.createObjectWrapper(user, ItemStatus.NOT_CHANGED, context); - - // THEN - then(); - - PrismTestUtil.display("Wrapper after", objectWrapper); - - WrapperTestUtil.assertWrapper(objectWrapper, getString("prismContainer.mainPanelDisplayName"), "user description", user, userOld, ItemStatus.NOT_CHANGED); - assertContainersPaths(objectWrapper, BASIC_USER_CONTAINERS_PATHS); - - WrapperTestUtil.assertWrapper(objectWrapper, getString("prismContainer.mainPanelDisplayName"), null, user, ItemStatus.NOT_CHANGED); - assertEquals("wrong number of containers in "+objectWrapper, 1, objectWrapper.getValues().size()); - PrismContainerValueWrapper mainContainerValueWrapper = objectWrapper.getValue(); - WrapperTestUtil.assertPropertyWrapperByName(mainContainerValueWrapper, UserType.F_NAME, PrismTestUtil.createPolyString(USER_EMPTY_USERNAME)); - WrapperTestUtil.assertPropertyWrapperByName(mainContainerValueWrapper, UserType.F_TIMEZONE); - - // Not sure about this -// ContainerWrapper activationContainerWrapper = objectWrapper.findContainer(ItemPath.create(UserType.F_ACTIVATION)); -// assertNull("Unexpected activation "+activationContainerWrapper, activationContainerWrapper); - - assertEquals("Wrong main container wrapper readOnly", Boolean.FALSE, (Boolean)objectWrapper.isReadOnly()); - - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_NAME, true); - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_GIVEN_NAME, true); // emphasized - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_FULL_NAME, true); // emphasized - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_ADDITIONAL_NAME, false); // empty - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_LOCALITY, false); // empty - - // WHEN - mainContainerValueWrapper.setShowEmpty(true); - - // THEN - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_NAME, true); - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_GIVEN_NAME, true); // emphasized - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_FULL_NAME, true); // emphasized - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_ADDITIONAL_NAME, true); // empty - assertItemWrapperFullConrol(mainContainerValueWrapper, UserType.F_LOCALITY, true); // empty - - ObjectDelta objectDelta = objectWrapper.getObjectDelta(); - display("Delta", objectDelta); - assertTrue("non-empty delta produced from wrapper: "+objectDelta, objectDelta.isEmpty()); - } - @Test public void test150CreateWrapperShadow() throws Exception { diff --git a/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/WrapperTestUtil.java b/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/WrapperTestUtil.java index 05bf0520ffa..29dfe18518f 100644 --- a/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/WrapperTestUtil.java +++ b/gui/admin-gui/src/test/java/com/evolveum/midpoint/web/WrapperTestUtil.java @@ -6,6 +6,13 @@ */ package com.evolveum.midpoint.web; +import static org.testng.AssertJUnit.*; + +import java.util.Arrays; +import java.util.List; + +import org.testng.AssertJUnit; + import com.evolveum.midpoint.gui.api.prism.ItemStatus; import com.evolveum.midpoint.gui.api.prism.ItemWrapper; import com.evolveum.midpoint.gui.api.prism.PrismContainerWrapper; @@ -22,26 +29,25 @@ import com.evolveum.midpoint.util.MiscUtil; import com.evolveum.midpoint.util.exception.SchemaException; import com.evolveum.midpoint.xml.ns._public.common.common_3.ObjectType; -import org.testng.AssertJUnit; - -import java.util.Arrays; -import java.util.List; - -import static org.testng.AssertJUnit.*; /** * @author semancik */ public class WrapperTestUtil { - public static void fillInPropertyWrapper(ModelServiceLocator modelServiceLocator, PrismContainerValueWrapper containerWrapper, ItemPath itemPath, T... newValues) throws SchemaException { + public static void fillInPropertyWrapper( + ModelServiceLocator modelServiceLocator, PrismContainerValueWrapper containerWrapper, + ItemPath itemPath, T... newValues) + throws SchemaException { PrismPropertyWrapper itemWrapper = containerWrapper.findProperty(itemPath); - assertNotNull("No item wrapper for path "+itemPath+" in "+containerWrapper, itemWrapper); + assertNotNull("No item wrapper for path " + itemPath + " in " + containerWrapper, itemWrapper); fillInPropertyWrapper(modelServiceLocator, itemWrapper, itemPath.lastName(), newValues); } - private static void fillInPropertyWrapper(ModelServiceLocator modelServiceLocator, PrismPropertyWrapper itemWrapper, ItemName itemName, T... newValues) throws SchemaException { - for (T newValue: newValues) { + private static void fillInPropertyWrapper(ModelServiceLocator modelServiceLocator, + PrismPropertyWrapper itemWrapper, ItemName itemName, T... newValues) + throws SchemaException { + for (T newValue : newValues) { List valueWrappers = itemWrapper.getValues(); PrismValueWrapper lastValueWrapper = valueWrappers.get(valueWrappers.size() - 1); PrismPropertyValue pval = (PrismPropertyValue) lastValueWrapper.getNewValue(); @@ -49,53 +55,60 @@ private static void fillInPropertyWrapper(ModelServi } } - public static void assertPropertyWrapper(PrismContainerValueWrapper containerWrapper, ItemPath itemPath, T... expectedValues) throws SchemaException { + public static void assertPropertyWrapper( + PrismContainerValueWrapper containerWrapper, ItemPath itemPath, T... expectedValues) + throws SchemaException { ItemWrapper itemWrapper = containerWrapper.findItem(itemPath, ItemWrapper.class); - assertNotNull("No item wrapper for path "+itemPath+" in "+containerWrapper, itemWrapper); + assertNotNull("No item wrapper for path " + itemPath + " in " + containerWrapper, itemWrapper); assertPropertyWrapper(containerWrapper, itemWrapper, itemPath.lastName(), expectedValues); } // todo better name - public static void assertPropertyWrapperByName(PrismContainerValueWrapper containerWrapper, ItemName itemName, T... expectedValues) throws SchemaException { + public static void assertPropertyWrapperByName( + PrismContainerValueWrapper containerWrapper, ItemName itemName, T... expectedValues) + throws SchemaException { ItemWrapper itemWrapper = containerWrapper.findItem(itemName, ItemWrapper.class); - assertNotNull("No item wrapper "+itemName+" in "+containerWrapper, itemWrapper); + assertNotNull("No item wrapper " + itemName + " in " + containerWrapper, itemWrapper); assertPropertyWrapper(containerWrapper, itemWrapper, itemName, expectedValues); } - private static void assertPropertyWrapper(PrismContainerValueWrapper containerWrapper, ItemWrapper itemWrapper, ItemName itemName, T... expectedValues) { + private static void assertPropertyWrapper( + PrismContainerValueWrapper containerWrapper, ItemWrapper itemWrapper, + ItemName itemName, T... expectedValues) { List valueWrappers = itemWrapper.getValues(); - assertPropertyWrapperValues("item wrapper "+itemName+" in "+containerWrapper, valueWrappers, expectedValues); + assertPropertyWrapperValues("item wrapper " + itemName + " in " + containerWrapper, valueWrappers, expectedValues); } - public static void assertPropertyWrapperValues(String desc, List valueWrappers, T... expectedValues) { + public static void assertPropertyWrapperValues( + String desc, List valueWrappers, T... expectedValues) { if (expectedValues == null) { expectedValues = (T[]) new Object[] { null }; } - assertEquals("Wrong number of values in "+desc+"; was: "+valueWrappers+", expected: "+Arrays.toString(expectedValues), expectedValues.length, valueWrappers.size()); + assertEquals("Wrong number of values in " + desc + "; was: " + valueWrappers + ", expected: " + Arrays.toString(expectedValues), expectedValues.length, valueWrappers.size()); if (expectedValues.length == 0) { return; } - for (PrismValueWrapper vw: valueWrappers) { + for (PrismValueWrapper vw : valueWrappers) { PrismValue actualPval = vw.getNewValue(); if (actualPval instanceof PrismPropertyValue) { - T actualValue = ((PrismPropertyValue)actualPval).getValue(); - if (expectedValues == null || expectedValues.length == 0 || ( expectedValues.length == 1 && expectedValues[0] == null)) { + T actualValue = ((PrismPropertyValue) actualPval).getValue(); + if (expectedValues == null || expectedValues.length == 0 || (expectedValues.length == 1 && expectedValues[0] == null)) { if (!isEmptyValue((PrismPropertyValue) vw.getOldValue())) { - AssertJUnit.fail("Unexpected value "+actualValue+" in value wrapper in "+desc+"; was: "+valueWrappers+", expected: "+ Arrays.toString(expectedValues)); + AssertJUnit.fail("Unexpected value " + actualValue + " in value wrapper in " + desc + "; was: " + valueWrappers + ", expected: " + Arrays.toString(expectedValues)); } } else { boolean found = false; - for (T expectedValue: expectedValues) { + for (T expectedValue : expectedValues) { if (MiscUtil.equals(expectedValue, actualValue)) { found = true; } } if (!found) { - AssertJUnit.fail("Unexpected value "+actualValue+" in value wrapper in "+desc+"; was: "+valueWrappers+", expected: "+Arrays.toString(expectedValues)); + AssertJUnit.fail("Unexpected value " + actualValue + " in value wrapper in " + desc + "; was: " + valueWrappers + ", expected: " + Arrays.toString(expectedValues)); } } } else { - AssertJUnit.fail("expected PrismPropertyValue in value wrapper in "+desc+", but got "+actualPval.getClass()); + AssertJUnit.fail("expected PrismPropertyValue in value wrapper in " + desc + ", but got " + actualPval.getClass()); } } @@ -106,48 +119,53 @@ private static boolean isEmptyValue(PrismPropertyValue pval) { if (val == null) { return true; } - if (val instanceof String && ((String)val).isEmpty()) { + if (val instanceof String && ((String) val).isEmpty()) { return true; } - if (val instanceof PolyString && ((PolyString)val).isEmpty()) { + if (val instanceof PolyString && ((PolyString) val).isEmpty()) { return true; } return false; } - public static void assertWrapper(PrismContainerWrapper containerWrapper, String displayName, - ItemPath expectedPath, PrismObject object, ItemStatus status) throws SchemaException { + public static void assertWrapper( + PrismContainerWrapper containerWrapper, String displayName, + ItemPath expectedPath, PrismObject object, ItemStatus status) + throws SchemaException { PrismContainer container; if (expectedPath == null) { container = (PrismContainer) object; } else { container = object.findContainer(expectedPath); } - assertWrapper(containerWrapper, displayName, expectedPath, container, expectedPath==null, status); + assertWrapper(containerWrapper, displayName, expectedPath, container, expectedPath == null, status); } - public static void assertWrapper(PrismContainerWrapper containerWrapper, String displayName, ItemPath expectedPath, - PrismContainer container, boolean isMain, ItemStatus status) throws SchemaException { + public static void assertWrapper( + PrismContainerWrapper containerWrapper, String displayName, ItemPath expectedPath, + PrismContainer container, boolean isMain, ItemStatus status) + throws SchemaException { assertNotNull("null wrapper", containerWrapper); PrismAsserts.assertEquivalent("Wrong path in wrapper " + containerWrapper, expectedPath == null ? ItemPath.EMPTY_PATH : expectedPath, containerWrapper.getPath()); if (container != null) { - assertEquals("Wrong item in wrapper "+containerWrapper, container, containerWrapper.getItem()); + assertEquals("Wrong item in wrapper " + containerWrapper, container, containerWrapper.getItem()); } - assertEquals("Wrong displayName in wrapper "+containerWrapper, displayName, containerWrapper.getValue().getDisplayName()); - assertEquals("Wrong status in wrapper "+containerWrapper, status, containerWrapper.getStatus()); + assertEquals("Wrong displayName in wrapper " + containerWrapper, displayName, containerWrapper.getValue().getDisplayName()); + assertEquals("Wrong status in wrapper " + containerWrapper, status, containerWrapper.getStatus()); } - public static void assertWrapper(PrismObjectWrapper objectWrapper, String displayName, String description, PrismObject object, PrismObject objectOld, - ItemStatus status) { + public static void assertWrapper( + PrismObjectWrapper objectWrapper, String displayName, String description, + PrismObject object, PrismObject objectOld, ItemStatus status) { assertNotNull("null wrapper", objectWrapper); - assertEquals("Wrong object in wrapper "+objectWrapper, object, objectWrapper.getObject()); + assertEquals("Wrong object in wrapper " + objectWrapper, object, objectWrapper.getObject()); if (ItemStatus.ADDED != objectWrapper.getStatus()) { assertEquals("Wrong old object in wrapper " + objectWrapper, objectOld, objectWrapper.getObjectOld()); } - assertFalse("object and old object not cloned in "+objectWrapper, objectWrapper.getObject() == objectWrapper.getObjectOld()); - assertEquals("Wrong displayName in wrapper "+objectWrapper, displayName, objectWrapper.getValue().getDisplayName()); - assertEquals("Wrong status in wrapper "+objectWrapper, status, objectWrapper.getStatus()); + assertFalse("object and old object not cloned in " + objectWrapper, objectWrapper.getObject() == objectWrapper.getObjectOld()); + assertEquals("Wrong displayName in wrapper " + objectWrapper, displayName, objectWrapper.getValue().getDisplayName()); + assertEquals("Wrong status in wrapper " + objectWrapper, status, objectWrapper.getStatus()); } }