Skip to content

Commit

Permalink
more notification body assertion fixes in tests
Browse files Browse the repository at this point in the history
  • Loading branch information
virgo47 committed Aug 25, 2022
1 parent 50e89f7 commit c7f98aa
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 81 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@
*/
package com.evolveum.midpoint.model.intest.scripting;

import static com.evolveum.midpoint.util.MiscUtil.emptyIfNull;

import static java.util.Collections.singleton;
import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.AssertJUnit.*;

import static com.evolveum.midpoint.util.MiscUtil.emptyIfNull;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
Expand All @@ -22,47 +22,41 @@
import java.util.stream.Collectors;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.model.api.ModelPublicConstants;
import com.evolveum.midpoint.util.exception.ScriptExecutionException;

import com.evolveum.midpoint.notifications.api.transports.Message;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.crypto.EncryptionException;
import com.evolveum.midpoint.prism.delta.ItemDelta;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.util.PrismAsserts;
import com.evolveum.midpoint.schema.constants.SchemaConstants;

import com.evolveum.midpoint.test.util.TestUtil;
import com.evolveum.midpoint.util.exception.*;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;

import com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.annotation.DirtiesContext;
import org.springframework.test.annotation.DirtiesContext.ClassMode;
import org.springframework.test.context.ContextConfiguration;
import org.testng.SkipException;
import org.testng.annotations.Test;
import org.testng.collections.Sets;

import com.evolveum.midpoint.common.LoggingConfigurationManager;
import com.evolveum.midpoint.model.api.ModelPublicConstants;
import com.evolveum.midpoint.model.api.PipelineItem;
import com.evolveum.midpoint.model.impl.scripting.ExecutionContext;
import com.evolveum.midpoint.model.impl.scripting.PipelineData;
import com.evolveum.midpoint.model.impl.scripting.ScriptingExpressionEvaluator;
import com.evolveum.midpoint.model.intest.AbstractInitializedModelIntegrationTest;
import com.evolveum.midpoint.notifications.api.transports.Message;
import com.evolveum.midpoint.prism.*;
import com.evolveum.midpoint.prism.crypto.EncryptionException;
import com.evolveum.midpoint.prism.delta.ItemDelta;
import com.evolveum.midpoint.prism.delta.ObjectDelta;
import com.evolveum.midpoint.prism.path.ItemName;
import com.evolveum.midpoint.prism.util.PrismAsserts;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.schema.expression.VariablesMap;
import com.evolveum.midpoint.schema.internals.InternalMonitor;
import com.evolveum.midpoint.schema.result.OperationResult;
import com.evolveum.midpoint.schema.result.OperationResultStatus;
import com.evolveum.midpoint.task.api.Task;
import com.evolveum.midpoint.test.util.LogfileTestTailer;
import com.evolveum.midpoint.test.util.TestUtil;
import com.evolveum.midpoint.util.DebugUtil;
import com.evolveum.midpoint.util.exception.*;
import com.evolveum.midpoint.xml.ns._public.common.common_3.*;
import com.evolveum.midpoint.xml.ns._public.model.scripting_3.*;

import org.testng.collections.Sets;
import com.evolveum.prism.xml.ns._public.types_3.ProtectedStringType;

@ContextConfiguration(locations = { "classpath:ctx-model-intest-test-main.xml" })
@DirtiesContext(classMode = ClassMode.AFTER_CLASS)
Expand Down Expand Up @@ -637,15 +631,15 @@ public void test360AssignCaptainAndDummyRedToJack() throws Exception {
//assertEquals("Recomputed user:c0c010c0-d34d-b33f-f00d-111111111111(jack)\n", output.getConsoleOutput());
assertUserAfterByUsername(USER_JACK_USERNAME)
.assignments()
.assertAssignments(2)
.by()
.targetOid(ROLE_CAPTAIN_OID)
.find()
.end()
.by()
.resourceOid(RESOURCE_DUMMY_RED_OID)
.find()
.end();
.assertAssignments(2)
.by()
.targetOid(ROLE_CAPTAIN_OID)
.find()
.end()
.by()
.resourceOid(RESOURCE_DUMMY_RED_OID)
.find()
.end();
}

@Test
Expand Down Expand Up @@ -702,7 +696,7 @@ public void test370AssignNicePirateByNameToJackInBackground() throws Exception {
assertSuccess(task.getResult());
assertUserAfterByUsername(USER_JACK_USERNAME)
.assignments()
.assertRole(ROLE_NICE_PIRATE_OID);
.assertRole(ROLE_NICE_PIRATE_OID);
}

@Test
Expand All @@ -713,7 +707,7 @@ public void test390AssignToWillRolePirateManager() throws Exception {

assertUserBefore(USER_WILL_OID)
.assignments()
.assertAssignments(3);
.assertAssignments(3);

ScriptingExpressionType expression = parseScriptingExpression(ASSIGN_PIRATE_MANAGER_TO_WILL);

Expand All @@ -729,9 +723,9 @@ public void test390AssignToWillRolePirateManager() throws Exception {
.assignments()
.assertAssignments(4)
.by()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_MANAGER)
.find();
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_MANAGER)
.find();
}

@Test
Expand All @@ -745,23 +739,23 @@ public void test391UnassignPirateDefaultFromWill() throws Exception {
.assignments()
.assertAssignments(4)
.by()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_MANAGER)
.find()
.end()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_MANAGER)
.find()
.end()
.by()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_DEFAULT)
.find()
.end()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_DEFAULT)
.find()
.end()
.by()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_OWNER)
.find()
.end()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_OWNER)
.find()
.end()
.by()
.resourceOid(RESOURCE_DUMMY_OID)
.find();
.resourceOid(RESOURCE_DUMMY_OID)
.find();

when();
ExecutionContext output = evaluator.evaluateExpression(expression, task, result);
Expand All @@ -775,18 +769,18 @@ public void test391UnassignPirateDefaultFromWill() throws Exception {
.assignments()
.assertAssignments(3)
.by()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_MANAGER)
.find()
.end()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_MANAGER)
.find()
.end()
.by()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_OWNER)
.find()
.end()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(SchemaConstants.ORG_OWNER)
.find()
.end()
.by()
.resourceOid(RESOURCE_DUMMY_OID)
.find();
.resourceOid(RESOURCE_DUMMY_OID)
.find();
}

@Test
Expand All @@ -808,9 +802,9 @@ public void test392UnassignPirateManagerAndOwnerFromWill() throws Exception {
assertUserAfter(USER_WILL_OID)
.assignments()
.assertAssignments(1)
.by()
.resourceOid(RESOURCE_DUMMY_OID)
.find();
.by()
.resourceOid(RESOURCE_DUMMY_OID)
.find();
}

@Test
Expand Down Expand Up @@ -856,9 +850,9 @@ public void test394AssignPirateRelationCaptainToWill() throws Exception {
.assignments()
.assertAssignments(1)
.by()
.targetOid(ROLE_PIRATE_OID)
.targetRelation(customRelation)
.find();
.targetOid(ROLE_PIRATE_OID)
.targetRelation(customRelation)
.find();
}

@Test
Expand Down Expand Up @@ -932,7 +926,7 @@ public void test420NotificationAboutJack() throws Exception {
displayDumpable("Dummy transport", dummyTransport);
checkDummyTransportMessages("Custom", 1);
Message m = dummyTransport.getMessages("dummy:Custom").get(0);
assertEquals("Wrong message body", "jack/" + USER_JACK_OID, m.getBody());
assertThat(m.getBody()).startsWith("jack/" + USER_JACK_OID); // there can be subscription footer
assertEquals("Wrong message subject", "Ad hoc notification", m.getSubject());
}

Expand All @@ -958,12 +952,12 @@ public void test430NotificationAboutJackType2() throws Exception {
displayDumpable("Dummy transport", dummyTransport);
checkDummyTransportMessages("Custom", 1);
Message m = dummyTransport.getMessages("dummy:Custom").get(0);
assertEquals("Wrong message body", "1", m.getBody());
assertThat(m.getBody()).startsWith("1"); // there can be subscription footer
assertEquals("Wrong message subject", "Ad hoc notification 2", m.getSubject());

checkDummyTransportMessages("CustomType2", 1);
m = dummyTransport.getMessages("dummy:CustomType2").get(0);
assertEquals("Wrong message body", "POV:user:c0c010c0-d34d-b33f-f00d-111111111111(jack)", m.getBody());
assertThat(m.getBody()).startsWith("POV:user:c0c010c0-d34d-b33f-f00d-111111111111(jack)"); // there can be subscription footer
assertEquals("Wrong message subject", "Failure notification of type 2", m.getSubject());
}

Expand Down Expand Up @@ -1280,7 +1274,7 @@ public void test570IterativeScriptingTask() throws Exception {
assertTask(taskAfterFirstRun, "task after first run")
.assertProgress(numberOfUsers)
.rootItemProcessingInformation()
.assertSuccessCount(numberOfUsers);
.assertSuccessCount(numberOfUsers);

// Testing for MID-6488
when("second run");
Expand All @@ -1290,7 +1284,7 @@ public void test570IterativeScriptingTask() throws Exception {
assertTask(taskAfterSecondRun, "task after second run")
.assertProgress(numberOfUsers)
.rootItemProcessingInformation()
.assertSuccessCount(numberOfUsers);
.assertSuccessCount(numberOfUsers);
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,13 @@
*/
package com.evolveum.midpoint.model.test;

import static com.evolveum.midpoint.schema.GetOperationOptions.createRetrieveCollection;

import static java.util.Collections.singleton;
import static java.util.Objects.requireNonNull;
import static org.assertj.core.api.Assertions.assertThat;
import static org.testng.AssertJUnit.*;

import static com.evolveum.midpoint.prism.PrismObject.asObjectableList;
import static com.evolveum.midpoint.schema.GetOperationOptions.createRetrieveCollection;
import static com.evolveum.midpoint.schema.constants.SchemaConstants.*;
import static com.evolveum.midpoint.util.MiscUtil.argCheck;
import static com.evolveum.midpoint.xml.ns._public.common.audit_3.AuditEventRecordType.F_TIMESTAMP;
Expand All @@ -30,11 +29,6 @@
import javax.xml.datatype.XMLGregorianCalendar;
import javax.xml.namespace.QName;

import com.evolveum.midpoint.authentication.api.AuthModule;

import com.evolveum.midpoint.model.test.util.ImportSingleAccountRequest.ImportSingleAccountRequestBuilder;
import com.evolveum.midpoint.schema.constants.MidPointConstants;

import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.mutable.MutableInt;
import org.jetbrains.annotations.NotNull;
Expand Down Expand Up @@ -62,6 +56,7 @@
import com.evolveum.midpoint.audit.api.AuditEventStage;
import com.evolveum.midpoint.audit.api.AuditEventType;
import com.evolveum.midpoint.audit.api.AuditReferenceValue;
import com.evolveum.midpoint.authentication.api.AuthModule;
import com.evolveum.midpoint.authentication.api.AuthenticationModuleState;
import com.evolveum.midpoint.authentication.api.ModuleWebSecurityConfiguration;
import com.evolveum.midpoint.authentication.api.config.MidpointAuthentication;
Expand All @@ -79,10 +74,10 @@
import com.evolveum.midpoint.model.api.hooks.HookRegistry;
import com.evolveum.midpoint.model.api.interaction.DashboardService;
import com.evolveum.midpoint.model.api.util.ReferenceResolver;
import com.evolveum.midpoint.repo.common.SystemObjectCache;
import com.evolveum.midpoint.model.common.stringpolicy.FocusValuePolicyOriginResolver;
import com.evolveum.midpoint.model.common.stringpolicy.ValuePolicyProcessor;
import com.evolveum.midpoint.model.test.asserter.*;
import com.evolveum.midpoint.model.test.util.ImportSingleAccountRequest.ImportSingleAccountRequestBuilder;
import com.evolveum.midpoint.notifications.api.NotificationManager;
import com.evolveum.midpoint.notifications.api.transports.Message;
import com.evolveum.midpoint.notifications.api.transports.TransportService;
Expand All @@ -105,13 +100,15 @@
import com.evolveum.midpoint.repo.api.RepositoryService;
import com.evolveum.midpoint.repo.api.perf.PerformanceInformation;
import com.evolveum.midpoint.repo.common.ObjectResolver;
import com.evolveum.midpoint.repo.common.SystemObjectCache;
import com.evolveum.midpoint.repo.common.activity.TaskActivityManager;
import com.evolveum.midpoint.repo.common.activity.run.CommonTaskBeans;
import com.evolveum.midpoint.repo.common.activity.run.buckets.BucketingConfigurationOverrides;
import com.evolveum.midpoint.repo.common.activity.run.buckets.BucketingManager;
import com.evolveum.midpoint.repo.common.activity.run.reports.ActivityReportUtil;
import com.evolveum.midpoint.repo.common.activity.run.task.ActivityBasedTaskHandler;
import com.evolveum.midpoint.schema.*;
import com.evolveum.midpoint.schema.constants.MidPointConstants;
import com.evolveum.midpoint.schema.constants.ObjectTypes;
import com.evolveum.midpoint.schema.constants.SchemaConstants;
import com.evolveum.midpoint.schema.expression.VariablesMap;
Expand Down Expand Up @@ -3536,7 +3533,7 @@ protected void resumeTaskTreeAndWaitForFinish(String rootTaskOid, int timeout) t
protected Task waitForNextRootActivityCompletion(@NotNull String rootTaskOid, int timeout) throws CommonException {
OperationResult result = getTestOperationResult();
XMLGregorianCalendar currentCompletionTimestamp = taskManager.getTaskWithResult(rootTaskOid, result)
.getRootActivityCompletionTimestamp();
.getRootActivityCompletionTimestamp();
return waitForRootActivityCompletion(rootTaskOid, currentCompletionTimestamp, timeout);
}

Expand Down Expand Up @@ -4159,7 +4156,7 @@ protected void assertSingleDummyTransportMessage(String name, String expectedBod
fail("Invalid number of messages recorded in dummy transport '" + name + "', expected: 1, actual: " + messages.size());
}
Message message = messages.get(0);
assertEquals("Unexpected notifier " + name + " message body", expectedBody, message.getBody());
assertThat(message.getBody()).startsWith(expectedBody); // there can be subscription footer
}

protected void assertSingleDummyTransportMessageContaining(String name, String expectedSubstring) {
Expand All @@ -4183,7 +4180,8 @@ protected void assertHasDummyTransportMessage(String name, String expectedBody)
List<Message> messages = dummyTransport.getMessages("dummy:" + name);
assertNotNull("No messages recorded in dummy transport '" + name + "'", messages);
for (Message message : messages) {
if (expectedBody.equals(message.getBody())) {
// there can be subscription footer, so we're only interested in the start of the message
if (message.getBody().startsWith(expectedBody)) {
return;
}
}
Expand Down

0 comments on commit c7f98aa

Please sign in to comment.