Skip to content

Commit

Permalink
Fixing validTo/validFrom mappings
Browse files Browse the repository at this point in the history
  • Loading branch information
semancik committed Jul 17, 2014
1 parent 45df280 commit 5e323e1
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 12 deletions.
Expand Up @@ -584,4 +584,8 @@ public static XMLGregorianCalendar addMillis(XMLGregorianCalendar now, long dura
return createXMLGregorianCalendar(toMillis(now) + duration);
}

public static String formatDateXml(Date date) {
return createXMLGregorianCalendar(date).toXMLFormat();
}

}
Expand Up @@ -25,6 +25,7 @@
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
Expand Down
Expand Up @@ -164,6 +164,9 @@ public class LensProjectionContext extends LensElementContext<ShadowType> implem
private transient Map<QName, DeltaSetTriple<ItemValueWithOrigin<PrismPropertyValue<?>>>> squeezedAttributes;
private transient Map<QName, DeltaSetTriple<ItemValueWithOrigin<PrismContainerValue<ShadowAssociationType>>>> squeezedAssociations;

// Cached copy, to avoid constructing it over and over again
private transient PrismObjectDefinition<ShadowType> shadowDefinition = null;

private ValuePolicyType accountPasswordPolicy;


Expand Down Expand Up @@ -313,7 +316,20 @@ public void setResource(ResourceType resource) {
this.resource = resource;
}

public boolean isAssigned() {
@Override
public PrismObjectDefinition<ShadowType> getObjectDefinition() {
if (shadowDefinition == null) {
try {
shadowDefinition = ShadowUtil.applyObjectClass(super.getObjectDefinition(), getRefinedAccountDefinition());
} catch (SchemaException e) {
// This should not happen
throw new SystemException(e.getMessage(), e);
}
}
return shadowDefinition;
}

public boolean isAssigned() {
return isAssigned;
}

Expand Down
Expand Up @@ -545,12 +545,7 @@ private <T, F extends FocusType> void evaluateActivationMapping(final LensContex
if (shadowNew != null) {
shadowPropertyNew = shadowNew.findProperty(projectionPropertyPath);
}

PrismObjectDefinition<ShadowType> shadowDefinition = ShadowUtil.applyObjectClass(
prismContext.getSchemaRegistry().findObjectDefinitionByCompileTimeClass(ShadowType.class),
projCtx.getRefinedAccountDefinition());



MappingInitializer<PrismPropertyValue<T>> initializer = new MappingInitializer<PrismPropertyValue<T>>() {
@Override
public void initialize(Mapping<PrismPropertyValue<T>> mapping) throws SchemaException {
Expand Down
Expand Up @@ -30,6 +30,7 @@
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.test.IntegrationTestTools;
import com.evolveum.midpoint.util.MiscUtil;
import com.evolveum.midpoint.util.QNameUtil;
import com.evolveum.midpoint.util.exception.CommunicationException;
import com.evolveum.midpoint.util.exception.ConfigurationException;
Expand Down Expand Up @@ -57,6 +58,7 @@
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.util.Date;

import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;
Expand Down Expand Up @@ -193,6 +195,8 @@ public class AbstractConfiguredModelIntegrationTest extends AbstractModelIntegra
protected static final String USER_HERMAN_OID = "c0c010c0-d34d-b33f-f00d-111111111122";
protected static final String USER_HERMAN_USERNAME = "herman";
protected static final String USER_HERMAN_FULL_NAME = "Herman Toothrot";
protected static final Date USER_HERMAN_VALID_FROM_DATE = MiscUtil.asDate(1700, 5, 30, 11, 00, 00);
protected static final Date USER_HERMAN_VALID_TO_DATE = MiscUtil.asDate(2233, 3, 23, 18, 30, 00);

// Has null name, doesn not have given name, no employeeType
protected static final String USER_THREE_HEADED_MONKEY_FILENAME = COMMON_DIR_NAME + "/user-three-headed-monkey.xml";
Expand Down
Expand Up @@ -58,6 +58,7 @@
import com.evolveum.midpoint.test.DummyResourceContoller;
import com.evolveum.midpoint.test.IntegrationTestTools;
import com.evolveum.midpoint.test.util.TestUtil;
import com.evolveum.midpoint.util.DOMUtil;
import com.evolveum.midpoint.util.MiscUtil;
import com.evolveum.midpoint.util.exception.ObjectNotFoundException;
import com.evolveum.midpoint.xml.ns._public.common.common_3.ActivationStatusType;
Expand Down Expand Up @@ -1527,13 +1528,13 @@ public void test410AssignHermanKhakiAccount() throws Exception {
display("User after change execution", user);
assertLinks(user, 1);

DummyAccount khakiAccount = getDummyAccount(RESOURCE_DUMMY_KHAKI_NAME, ACCOUNT_HERMAN_DUMMY_USERNAME);
DummyAccount khakiAccount = getDummyAccount(RESOURCE_DUMMY_KHAKI_NAME, USER_HERMAN_USERNAME);
assertNotNull("No khaki account", khakiAccount);
assertTrue("khaki account not enabled", khakiAccount.isEnabled());
assertEquals("Wrong quote (validFrom) in khaki account", ACCOUNT_MANCOMB_VALID_FROM_DATE,
assertEquals("Wrong quote (validFrom) in khaki account", "from: 1700-05-30T11:00:00Z",
khakiAccount.getAttributeValue(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_QUOTE_NAME));
assertEquals("Wrong gossip (validTo) in khaki account", ACCOUNT_MANCOMB_VALID_TO_DATE,
khakiAccount.getAttributeValue(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_GOSSIP_NAME));
assertEquals("Wrong drink (validTo) in khaki account", "to: 2233-03-23T18:30:00Z",
khakiAccount.getAttributeValue(DummyResourceContoller.DUMMY_ACCOUNT_ATTRIBUTE_DRINK_NAME));
}


Expand Down
Expand Up @@ -132,7 +132,7 @@
</script>
</expression>
<target>
<path>attributes/gossip</path>
<path>attributes/drink</path>
</target>
</outbound>
</validTo>
Expand Down

0 comments on commit 5e323e1

Please sign in to comment.