public void When_ContactIsBeingUpdatedAndMandatoryFieldsAreSpecified_Expect_PluginNotToFail() { var ctx = new XrmFakedContextWithProxy(); var preImage = TestContactBase; preImage.Attributes.Remove("mobilephone"); var target = TestContactBase.Clone <Contact>(); target.Attributes.Remove("emailaddress"); var pluginCtx = new UpdatePreValidationSyncBase(ctx) { TargetEntity = target, PreImage = preImage }; var exc = Record.Exception( () => ctx.ExecutePluginWithConfigurations <AdvancedPluginDemo.Plugins.Bound.Contact.Update>( pluginCtx, string.Empty, string.Empty)); Assert.Null(exc); }
public void When_ContactIsBeingUpdatedAndMandatoryFieldIsNotSpecified_Expect_PluginToFail(string fieldName) { var ctx = new XrmFakedContextWithProxy(); var preImage = TestContactBase; var target = TestContactBase.Clone <Contact>(); preImage[fieldName] = null; target.Attributes.Remove(fieldName); var pluginCtx = new UpdatePreValidationSyncBase(ctx) { TargetEntity = target, PreImage = preImage }; var exc = Assert.Throws <InvalidPluginExecutionException>( () => ctx.ExecutePluginWithConfigurations <AdvancedPluginDemo.Plugins.Bound.Contact.Update>( pluginCtx, string.Empty, string.Empty)); var expectedMessage = string.Format(CommonConstants.MandatoryFieldExceptionMessageTemplate, fieldName); Assert.Contains(expectedMessage, exc.Message); }