コード例 #1
0
        /// <summary>
        /// Creates a new RegisteredEventBuilder, but keeps the previous RegisteredEventBuilder linked so a call to build, will build the previous objects in the chain.
        /// </summary>
        /// <param name="stage"></param>
        /// <param name="messageTypes"></param>
        /// <returns></returns>
        public RegisteredEventBuilder And(PipelineStage stage, params MessageType[] messageTypes)
        {
            var builder = new RegisteredEventBuilder(stage, messageTypes)
            {
                PreviousBuilder = this
            };

            return(builder);
        }
コード例 #2
0
        public void RegisteredEventBuilder_NoMessage_Should_UseAnyMessage()
        {
            TestStage(PipelineStage.PreValidation);
            TestStage(PipelineStage.PreOperation);
            TestStage(PipelineStage.PostOperation);

            void TestStage(PipelineStage stage)
            {
                var sut = new RegisteredEventBuilder(stage).Build().Single();

                Assert.AreEqual(RegisteredEvent.Any, sut.Message);
                Assert.AreEqual(stage, sut.Stage);
            }
        }
コード例 #3
0
        public void RegisteredEventBuilder_WithAnd_Should_CreateMultipleRegisteredEvents()
        {
            // Previous Syntax
            var events = new RegisteredEventBuilder(PipelineStage.PreOperation, MessageType.Create).Build();

            events.AddRange(new RegisteredEventBuilder(PipelineStage.PostOperation, MessageType.Update).Build());

            // New Syntax
            var values = new RegisteredEventBuilder(PipelineStage.PreOperation, MessageType.Create)
                         .And(PipelineStage.PostOperation, MessageType.Update)
                         .Build();



            Assert.AreEqual(2, values.Count, "Two events should have been created, a single Pre Operation Registered Event and a Single Post Operation Event.");
            var pre  = values.Single(v => v.Stage == PipelineStage.PreOperation);
            var post = values.Single(v => v.Stage == PipelineStage.PostOperation);

            Assert.AreEqual(MessageType.Create, pre.Message);
            Assert.AreEqual(MessageType.Update, post.Message);
        }
コード例 #4
0
ファイル: Extensions.cs プロジェクト: JQ-IOWA/XrmUnitTest
        // Create Extension Method to Accept the Custom PluginContext

        public static RegisteredEventBuilder WithExecuteAction(this RegisteredEventBuilder builder, Action <ExtendedPluginContext> execute)
        {
            builder.WithExecuteAction(execute);
            return(builder);
        }