public void When_the_followup_plugin_is_executed_for_an_account_after_create_it_should_create_a_new_task_with_a_regardingid() { var fakedContext = new XrmFakedContext(); fakedContext.ProxyTypesAssembly = Assembly.GetExecutingAssembly(); //Needed to be able to return early bound entities var guid1 = Guid.NewGuid(); var target = new Entity("account") { Id = guid1 }; ParameterCollection inputParameters = new ParameterCollection(); inputParameters.Add("Target", target); ParameterCollection outputParameters = new ParameterCollection(); outputParameters.Add("id", guid1); fakedContext.ExecutePluginWith<FollowupPlugin>(inputParameters, outputParameters, null, null); //The plugin creates a followup activity, check that that one exists var tasks = (from t in fakedContext.CreateQuery<Task>() select t).ToList(); Assert.True(tasks.Count == 1); Assert.True(tasks[0].Subject.Equals("Send e-mail to the new customer.")); Assert.True(tasks[0].RegardingObjectId != null && tasks[0].RegardingObjectId.Id.Equals(guid1)); }
public void When_getting_a_default_context_shared_variables_can_be_accessed_from_a_plugin() { var context = new XrmFakedContext(); var pluginContext = context.GetDefaultPluginContext(); pluginContext.SharedVariables.Add("key", "somevalue"); Assert.DoesNotThrow(() =>context.ExecutePluginWith<TestSharedVariablesPropertyPlugin>(pluginContext)); }
public void When_Passing_In_No_Properties_Plugins_Only_Get_Default_Values() { var context = new XrmFakedContext(); ParameterCollection inputParameters = new ParameterCollection(); inputParameters.Add("Target", new Entity()); var pluginContext = new XrmFakedPluginExecutionContext() { InputParameters = inputParameters, UserId = Guid.NewGuid(), InitiatingUserId = Guid.NewGuid() }; //Parameters are defaulted now... Assert.DoesNotThrow(() => context.ExecutePluginWith<TestContextPlugin>(pluginContext)); pluginContext = new XrmFakedPluginExecutionContext() { InputParameters = inputParameters, MessageName = "Create", InitiatingUserId = Guid.NewGuid() }; Assert.DoesNotThrow(() => context.ExecutePluginWith<TestContextPlugin>(pluginContext)); pluginContext = new XrmFakedPluginExecutionContext() { InputParameters = inputParameters, MessageName = "Update", UserId = Guid.NewGuid() }; Assert.DoesNotThrow(() => context.ExecutePluginWith<TestContextPlugin>(pluginContext)); }
public void When_executing_a_plugin_primaryentityname_exists_in_the_context() { var context = new XrmFakedContext(); var pluginContext = context.GetDefaultPluginContext(); pluginContext.PrimaryEntityName = "Account"; pluginContext.MessageName = "Create"; pluginContext.Stage = 20; var entity = new Entity(); context.ExecutePluginWith<PreAccountCreate>(pluginContext); Assert.True(true); }
public void When_initializing_the_context_with_Properties_Plugins_Can_Access_It() { var context = new XrmFakedContext(); ParameterCollection inputParameters = new ParameterCollection(); inputParameters.Add("Target", new Entity()); var plugCtx = context.GetDefaultPluginContext(); plugCtx.MessageName = "Create"; plugCtx.InputParameters = inputParameters; Assert.DoesNotThrow(() => context.ExecutePluginWith<TestContextPlugin>(plugCtx)); }