public void Replace_WhenStepIdsDoNotMatch_ShouldThrowInvalidOperationException()
        {
            var registerStep = RegisterStep.Create("stepId 1", typeof(BehaviorA), "description");
            var replacement  = new ReplaceStep("stepId 2", typeof(BehaviorB));

            Assert.Throws <InvalidOperationException>(() => registerStep.Replace(replacement));
        }
        public void Replace_ShouldReplaceBehaviorType()
        {
            var registerStep = RegisterStep.Create("pipelineStep", typeof(BehaviorA), "description");
            var replacement  = new ReplaceStep("pipelineStep", typeof(BehaviorB));

            registerStep.Replace(replacement);

            Assert.AreEqual(typeof(BehaviorB), registerStep.BehaviorType);
        }
        public void Replace_WhenReplacementContainsDescription_ShouldReplaceDescription()
        {
            const string replacementDescription = "new";
            var          registerStep           = RegisterStep.Create("pipelineStep", typeof(BehaviorA), "description");
            var          replacement            = new ReplaceStep("pipelineStep", typeof(BehaviorB), replacementDescription);

            registerStep.Replace(replacement);

            Assert.AreEqual(replacementDescription, registerStep.Description);
        }
        public void Replace_WhenReplacementContainsEmptyDescription_ShouldKeepOriginalDescription()
        {
            const string originalDescription = "description";
            var          registerStep        = RegisterStep.Create("pipelineStep", typeof(BehaviorA), originalDescription);
            var          replacement         = new ReplaceStep("pipelineStep", typeof(BehaviorB), "    ");

            registerStep.Replace(replacement);

            Assert.AreEqual(originalDescription, registerStep.Description);
        }
Пример #5
0
        internal void Replace(ReplaceStep replacement)
        {
            if (StepId != replacement.ReplaceId)
            {
                throw new InvalidOperationException($"Cannot replace step '{StepId}' with '{replacement.ReplaceId}'. The ID of the replacement must match the replaced step.");
            }

            BehaviorType  = replacement.BehaviorType;
            factoryMethod = replacement.FactoryMethod;

            if (!string.IsNullOrWhiteSpace(replacement.Description))
            {
                Description = replacement.Description;
            }
        }
        public void Replace_WhenReplacementProvidedFactory_ShouldBuildReplacementFromFactory()
        {
            var replacementBehaviorFactoryCalled = false;
            Func <IBuilder, IBehavior> replacementBehaviorFactory = b =>
            {
                replacementBehaviorFactoryCalled = true;
                return(new BehaviorB());
            };

            var builder      = new FakeBuilder(typeof(BehaviorB));
            var registerStep = RegisterStep.Create("pipelineStep", typeof(BehaviorA), "description", b => { throw new Exception(); });
            var replacement  = new ReplaceStep("pipelineStep", typeof(BehaviorB), factoryMethod: replacementBehaviorFactory);

            registerStep.Replace(replacement);
            var behavior = registerStep.CreateBehavior(builder);

            Assert.IsTrue(replacementBehaviorFactoryCalled);
            Assert.IsInstanceOf <BehaviorB>(behavior);
        }
        public void Replace_WhenReplacementProvidesNoFactory_ShouldBuildReplacementFromBuilder()
        {
            var originalBehaviorFactoryCalled = false;
            Func <IBuilder, IBehavior> originalBehaviorFactory = b =>
            {
                originalBehaviorFactoryCalled = true;
                return(new BehaviorA());
            };

            var builder      = new FakeBuilder(typeof(BehaviorB));
            var registerStep = RegisterStep.Create("pipelineStep", typeof(BehaviorA), "description", originalBehaviorFactory);
            var replacement  = new ReplaceStep("pipelineStep", typeof(BehaviorB));

            registerStep.Replace(replacement);
            var behavior = registerStep.CreateBehavior(builder);

            Assert.IsFalse(originalBehaviorFactoryCalled);
            Assert.IsInstanceOf <BehaviorB>(behavior);
        }
Пример #8
0
 public void SetUp()
 {
     instance = CreateReplaceStep();
 }
Пример #9
0
        internal void Replace(ReplaceStep replacement)
        {
            if (StepId != replacement.ReplaceId)
            {
                throw new InvalidOperationException($"Cannot replace step '{StepId}' with '{replacement.ReplaceId}'. The ID of the replacement must match the replaced step.");
            }

            BehaviorType = replacement.BehaviorType;
            factoryMethod = replacement.FactoryMethod;

            if (!string.IsNullOrWhiteSpace(replacement.Description))
            {
                Description = replacement.Description;
            }
        }
Пример #10
0
        /// <summary>
        /// Replaces the specified original items in the input collection.
        /// </summary>
        /// <typeparam name="TInput">The type of the input.</typeparam>
        /// <param name="originalItems">The original items.</param>
        /// <returns></returns>
        public static ReplaceStep <TInput> Replace <TInput>(params TInput[] originalItems)
        {
            var result = new ReplaceStep <TInput>(originalItems);

            return(result);
        }
 public ConfigurePipelineModelBuilder Replace(ReplaceStep registration)
 {
     replacements.Add(registration);
     return(this);
 }