Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
mederly committed Apr 18, 2018
2 parents 5e3a9a0 + 04422b5 commit a8bb16f
Show file tree
Hide file tree
Showing 2 changed files with 62 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@
import com.evolveum.midpoint.prism.polystring.PolyString;
import com.evolveum.midpoint.prism.query.ObjectQuery;
import com.evolveum.midpoint.prism.query.builder.QueryBuilder;
import com.evolveum.midpoint.prism.xml.XmlTypeConverter;
import com.evolveum.midpoint.repo.api.RepoAddOptions;
import com.evolveum.midpoint.repo.sql.data.common.ObjectReference;
import com.evolveum.midpoint.repo.sql.data.common.RObjectReference;
Expand All @@ -46,6 +47,7 @@
import com.evolveum.midpoint.util.logging.Trace;
import com.evolveum.midpoint.util.logging.TraceManager;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.prism.xml.ns._public.types_3.PolyStringType;
import org.hibernate.Session;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.DirtiesContext;
Expand Down Expand Up @@ -487,7 +489,7 @@ public void test250ModifyShadow() throws Exception {

@Test
public void test260ReplaceAssignmentExtension() throws Exception {
OperationResult result = new OperationResult("test210ReplaceAssignmentExtension");
OperationResult result = new OperationResult("test260ReplaceAssignmentExtension");

String file = FOLDER_BASE + "/modify/user-with-assignment-extension.xml";
PrismObject<UserType> user = prismContext.parseObject(new File(file));
Expand Down Expand Up @@ -548,4 +550,59 @@ public void test260ReplaceAssignmentExtension() throws Exception {
assertEquals(1, ext.getStrings().size());
close(session);
}

@Test
public void test270modifyOperationExecution() throws Exception {
OperationResult result = new OperationResult("test270modifyOperationExecution");

String file = FOLDER_BASE + "/modify/user-with-assignment-extension.xml";
PrismObject<UserType> user = prismContext.parseObject(new File(file));

UserType userType = user.asObjectable();
userType.setName(new PolyStringType("test270modifyOperationExecution"));
OperationExecutionType oe = createOperationExecution("repo1");
userType.getOperationExecution().add(oe);

user.setOid(null);
repositoryService.addObject(user, null, result);
String userOid = user.getOid();

assertOperationExecutionSize(userOid, 1);

oe = createOperationExecution("repo2");
Collection deltas = DeltaBuilder.deltaFor(UserType.class, prismContext)
.item(UserType.F_OPERATION_EXECUTION)
.add(oe.asPrismContainerValue().clone())
.asItemDeltas();
repositoryService.modifyObject(UserType.class, userOid, deltas, result);

assertOperationExecutionSize(userOid, 2);
}

private OperationExecutionType createOperationExecution(String channel) {
OperationExecutionType oe = new OperationExecutionType();
oe.setChannel(channel);
oe.setStatus(OperationResultStatusType.SUCCESS);
oe.setTimestamp(XmlTypeConverter.createXMLGregorianCalendar(new Date()));
ObjectReferenceType ref = new ObjectReferenceType();
ref.setOid(SystemObjectsType.USER_ADMINISTRATOR.value());
ref.setType(UserType.COMPLEX_TYPE);
oe.setInitiatorRef(ref);

return oe;
}

private void assertOperationExecutionSize(String oid, int expectedSize) {

Session session = open();
try {
RUser rUser = (RUser) session.createQuery("from RUser where oid = :o")
.setParameter("o", oid)
.getSingleResult();

AssertJUnit.assertEquals(expectedSize, rUser.getOperationExecutions().size());
} finally {
session.close();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,10 @@ public void init() {
}

if (path == null) {
JaxbName name = ((Method) attribute.getJavaMember()).getAnnotation(JaxbName.class);
if (name != null) {
overrides.put(name.localPart(), attribute);
}
continue;
}

Expand Down

0 comments on commit a8bb16f

Please sign in to comment.