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); }
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); }
public void SetUp() { instance = CreateReplaceStep(); }
/// <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); }