Пример #1
0
        public PipelineBase(IOrganizationService service = null)
        {
            _shimContext = ShimsContext.Create();
            {
                if (service == null)
                {
                    FakeService = new FakeOrganzationService();
                    Service     = FakeService;
                }
                else
                {
                    Service = service;
                }

                PreImages              = new EntityImageCollection();
                PostImages             = new EntityImageCollection();
                InputParameters        = new ParameterCollection();
                OutputParameters       = new ParameterCollection();
                PluginExecutionContext = new StubIPluginExecutionContext();
                PluginExecutionContext.PreEntityImagesGet  = () => { return(PreImages); };
                PluginExecutionContext.PostEntityImagesGet = () => { return(PreImages); };
                PluginExecutionContext.InputParametersGet  = () => { return(InputParameters); };
                PluginExecutionContext.OutputParametersGet = () => { return(OutputParameters); };

                // ITracingService
                TracingService = new StubITracingService();
                TracingService.TraceStringObjectArray = (format, values) =>
                {
                    if (values != null && values.Length > 0)
                    {
                        Trace.WriteLine(string.Format(format, values));
                    }
                    else
                    {
                        Trace.WriteLine(format);
                    }
                };

                // IOrganizationServiceFactory
                Factory = new StubIOrganizationServiceFactory
                {
                    CreateOrganizationServiceNullableOfGuid = id =>
                    {
                        return(Service);
                    }
                };

                // IServiceProvider
                ServiceProvider = new System.Fakes.StubIServiceProvider
                {
                    GetServiceType = type =>
                    {
                        if (type == typeof(IPluginExecutionContext))
                        {
                            return(PluginExecutionContext);
                        }
                        else if (type == typeof(ITracingService))
                        {
                            return(TracingService);
                        }
                        else if (type == typeof(IOrganizationServiceFactory))
                        {
                            return(Factory);
                        }

                        return(null);
                    }
                };
            }
        }
Пример #2
0
        public void TestMethod1()
        {
            Entity lead   = new Entity("lead");
            Guid   userId = Guid.NewGuid();
            Guid   leadId = Guid.NewGuid();
            // IPluginExecutionContext

            var pluginExecutionContext = new StubIPluginExecutionContext();

            pluginExecutionContext.UserIdGet = () =>
            {
                return(userId);
            };
            pluginExecutionContext.InputParametersGet = () =>
            {
                ParameterCollection parameters = new ParameterCollection();
                parameters["Target"] = lead;
                //parameters["Assignee"] = teamRef;
                return(parameters);
            };

            // IOrganizationService
            var service = new Microsoft.Xrm.Sdk.Fakes.StubIOrganizationService();

            // IOrganizationServiceFactory
            var factory = new StubIOrganizationServiceFactory();

            factory.CreateOrganizationServiceNullableOfGuid = id =>
            {
                return(service);
            };

            // IServiceProvider
            var serviceProvider = new System.Fakes.StubIServiceProvider();

            serviceProvider.GetServiceType = t =>
            {
                if (t == typeof(IPluginExecutionContext))
                {
                    return(pluginExecutionContext);
                }
                else if (t == typeof(IOrganizationServiceFactory))
                {
                    return(factory);
                }

                return(null);
            };
            service.CreateEntity = (entity) =>
            {
                return(lead.Id);
            };

            service.ExecuteOrganizationRequest = (executerequest) =>
            {
                return(new SendEmailResponse());
            };
            Class1 target = new Class1();

            target.Execute(serviceProvider);
        }
Пример #3
0
        public void ExecuteTest()
        {
            //
            // Arrange
            //
            string unsecure = "unsecure";
            string secure   = "secure";
            Plugin target   = new Plugin(unsecure, secure);

            var accountId      = Guid.NewGuid();
            var previousNumber = 3;
            var expected       = 4;
            var actual         = 0;

            // IOrganizationService
            var service = new Microsoft.Xrm.Sdk.Fakes.StubIOrganizationService();

            service.RetrieveStringGuidColumnSet = (entityName, id, columns) =>
            {
                return(new Microsoft.Xrm.Sdk.Entity("account")
                {
                    Id = accountId,
                    Attributes = { { "numberofemployees", previousNumber } }
                });
            };
            service.UpdateEntity = (entity) =>
            {
                actual = entity.GetAttributeValue <int>("numberofemployees");
            };

            // IPluginExecutionContext
            var pluginExecutionContext = new Microsoft.Xrm.Sdk.Fakes.StubIPluginExecutionContext();

            pluginExecutionContext.StageGet             = () => { return(40); };
            pluginExecutionContext.MessageNameGet       = () => { return("Create"); };
            pluginExecutionContext.PrimaryEntityNameGet = () => { return("contact"); };
            pluginExecutionContext.PostEntityImagesGet  = () =>
            {
                return(new EntityImageCollection
                {
                    { "PostCreateImage", new Microsoft.Xrm.Sdk.Entity("contact")
                      {
                          Attributes = { { "parentcustomerid", new EntityReference("account", accountId) } }
                      } }
                });
            };

            // ITracingService
            var tracingService = new Microsoft.Xrm.Sdk.Fakes.StubITracingService();

            tracingService.TraceStringObjectArray = (f, o) =>
            {
                Debug.WriteLine(f, o);
            };

            // IOrganizationServiceFactory
            var factory = new Microsoft.Xrm.Sdk.Fakes.StubIOrganizationServiceFactory();

            factory.CreateOrganizationServiceNullableOfGuid = id =>
            {
                return(service);
            };

            // IServiceProvider
            var serviceProvider = new System.Fakes.StubIServiceProvider();

            serviceProvider.GetServiceType = t =>
            {
                if (t == typeof(IPluginExecutionContext))
                {
                    return(pluginExecutionContext);
                }
                else if (t == typeof(ITracingService))
                {
                    return(tracingService);
                }
                else if (t == typeof(IOrganizationServiceFactory))
                {
                    return(factory);
                }

                return(null);
            };

            //
            // Act
            //
            target.Execute(serviceProvider);

            //
            // Assert
            //
            Assert.AreEqual(expected, actual);
        }