Skip to content

Commit

Permalink
Add test for MID-6045 (not failing)
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Mar 6, 2020
1 parent f9c046a commit 449345c
Show file tree
Hide file tree
Showing 4 changed files with 93 additions and 8 deletions.
Expand Up @@ -185,6 +185,10 @@ public static Date toDate(XMLGregorianCalendar xmlCal) {
return xmlCal != null ? new Date(xmlCal.toGregorianCalendar().getTimeInMillis()) : null;
}

public static XMLGregorianCalendar fromNow(String timeSpec) {
return fromNow(XmlTypeConverter.createDuration(timeSpec));
}

public static XMLGregorianCalendar fromNow(Duration duration) {
XMLGregorianCalendar rv = createXMLGregorianCalendar(System.currentTimeMillis());
rv.add(duration);
Expand Down
Expand Up @@ -790,10 +790,9 @@ public XMLGregorianCalendar currentDateTime() {
}

public XMLGregorianCalendar fromNow(String timeSpec) {
return XmlTypeConverter.fromNow(XmlTypeConverter.createDuration(timeSpec));
return XmlTypeConverter.fromNow(timeSpec);
}


public XMLGregorianCalendar addDuration(XMLGregorianCalendar now, Duration duration) {
if (now == null) {
return null;
Expand Down
Expand Up @@ -78,13 +78,15 @@ public class TestUserTemplate extends AbstractInitializedModelIntegrationTest {
protected static final String USER_TEMPLATE_USELESS_OID = "29b2936a-d1f6-4942-8e44-9ba44fc27423";

protected static final TestResource USER_TEMPLATE_MID_5892 = new TestResource(TEST_DIR, "user-template-mid-5892.xml", "064993c0-34b4-4440-9331-e909fc923504");
private static final TestResource USER_TEMPLATE_MID_6045 = new TestResource(TEST_DIR, "user-template-mid-6045.xml", "f3dbd582-11dc-473f-8b51-a30be5cbd5ce");

private static final String ACCOUNT_STAN_USERNAME = "stan";
private static final String ACCOUNT_STAN_FULLNAME = "Stan the Salesman";

private static final String SUBTYPE_MAROONED = "marooned";
private static final String SUBTYPE_USELESS = "useless";
private static final String SUBTYPE_MID_5892 = "mid-5892";
private static final String SUBTYPE_MID_6045 = "mid-6045";

private static final int NUMBER_OF_IMPORTED_ROLES = 5;

Expand Down Expand Up @@ -114,11 +116,13 @@ public void initSystem(Task initTask, OperationResult initResult) throws Excepti
repoAddObjectFromFile(USER_TEMPLATE_MAROONED_FILE, initResult);
repoAddObjectFromFile(USER_TEMPLATE_USELESS_FILE, initResult);
repoAdd(USER_TEMPLATE_MID_5892, initResult);
repoAdd(USER_TEMPLATE_MID_6045, initResult);

setDefaultObjectTemplate(UserType.COMPLEX_TYPE, USER_TEMPLATE_COMPLEX_OID, initResult);
setDefaultObjectTemplate(UserType.COMPLEX_TYPE, SUBTYPE_MAROONED, USER_TEMPLATE_MAROONED_OID, initResult);
setDefaultObjectTemplate(UserType.COMPLEX_TYPE, SUBTYPE_USELESS, USER_TEMPLATE_USELESS_OID, initResult);
setDefaultObjectTemplate(UserType.COMPLEX_TYPE, SUBTYPE_MID_5892, USER_TEMPLATE_MID_5892.oid, initResult);
setDefaultObjectTemplate(UserType.COMPLEX_TYPE, SUBTYPE_MID_6045, USER_TEMPLATE_MID_6045.oid, initResult);
}

protected int getNumberOfRoles() {
Expand Down Expand Up @@ -3547,12 +3551,43 @@ public void test980DeleteUserGivenName() throws Exception {
PrismObject<UserType> userAfter = modelService.getObject(UserType.class, user.getOid(), null, task, result);
display("User after", userAfter);

AssignmentType assignment = assertAssignedRole(userAfter, SystemObjectsType.ROLE_SUPERUSER.value());
assertAssignedRole(userAfter, SystemObjectsType.ROLE_SUPERUSER.value());
}

// @Override
// protected TracingProfileType getTestMethodTracingProfile() {
// return createModelLoggingTracingProfile()
// .fileNamePattern(TEST_METHOD_TRACING_FILENAME_PATTERN);
// }
/**
* MID-6045
*/
@Test
public void test990SpecialTimedMapping() throws Exception {
Task task = getTestTask();
OperationResult result = task.getResult();

XMLGregorianCalendar firstTriggerTime = XmlTypeConverter.fromNow("PT1M");

UserType user = new UserType(prismContext)
.name("test990SpecialTimedMapping")
.givenName("jim")
.subtype(SUBTYPE_MID_6045)
.beginTrigger()
.timestamp(firstTriggerTime)
.handlerUri(RecomputeTriggerHandler.HANDLER_URI)
.<UserType>end()
.beginAssignment()
.targetRef(SystemObjectsType.ROLE_SUPERUSER.value(), RoleType.COMPLEX_TYPE)
.end();
repositoryService.addObject(user.asPrismObject(), null, result);

when();
recomputeUser(user.getOid(), task, result);

then();
assertSuccess(result);

assertUser(user.getOid(), "user after")
.display()
.triggers()
.assertTriggers(3) // for some reason two new triggers are created
.end()
.assertAssignments(1);
}
}
@@ -0,0 +1,47 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
~ Copyright (c) 2020 Evolveum and contributors
~
~ This work is dual-licensed under the Apache License 2.0
~ and European Union Public License. See LICENSE file for details.
-->
<objectTemplate oid="f3dbd582-11dc-473f-8b51-a30be5cbd5ce"
xmlns='http://midpoint.evolveum.com/xml/ns/public/common/common-3'>
<name>User Template 6045</name>

<mapping> <!-- MID-6045 -->
<strength>strong</strength>
<source>
<path>name</path>
</source>
<expression>
<script>
<code>
null
</code>
</script>
</expression>
<target>
<path>assignment</path>
<set>
<condition>
<script>
<code>
// role that should be removed
assignment?.targetRef?.oid == '00000000-0000-0000-0000-000000000004'
</code>
</script>
</condition>
</set>
</target>
<timeFrom>
<expression>
<script>
<code>
basic.fromNow("P8D")
</code>
</script>
</expression>
</timeFrom>
</mapping>
</objectTemplate>

0 comments on commit 449345c

Please sign in to comment.