public static Action <string>[] GetExpectedHistory(string expectedCommand, string expectedCommandName) { switch (expectedCommand) { case BasicCommand: return(new Action <string>[] { x => AssertForVisitor.CalledVisitCommand(StageName.VisitorA, $"{expectedCommandName}:{CallWith.CommandValue.BasicCommand()}", x), x => AssertForVisitor.CalledPostVisitCommand(StageName.VisitorA, $"{expectedCommandName}:{CallWith.CommandValue.BasicCommand()}", x) }); case DerivedCommand: return(new Action <string>[] { x => AssertForVisitor.CalledVisitCommand(StageName.VisitorA, $"{expectedCommandName}:{CallWith.CommandValue.DerivedCommand()}", x), x => AssertForVisitor.CalledPostVisitCommand(StageName.VisitorA, $"{expectedCommandName}:{CallWith.CommandValue.DerivedCommand()}", x) }); case DerivedCommandV2: return(new Action <string>[] { x => AssertForVisitor.CalledVisitCommand(StageName.VisitorA, $"{expectedCommandName}:{CallWith.CommandValue.DerivedCommandV2()}", x), x => AssertForVisitor.CalledPostVisitCommand(StageName.VisitorA, $"{expectedCommandName}:{CallWith.CommandValue.DerivedCommandV2()}", x) }); case UnrelatedCommand: return(new Action <string>[] { x => AssertForVisitor.CalledVisitCommand(StageName.VisitorA, $"{expectedCommandName}:{CallWith.CommandValue.UnrelatedCommand()}", x), x => AssertForVisitor.CalledPostVisitCommand(StageName.VisitorA, $"{expectedCommandName}:{CallWith.CommandValue.UnrelatedCommand()}", x) }); } return(new Action <string> [0]); }
public void WhenCallingRunCommandWithNullCommandName_ThenVisitCommandCalledInExpectedStageCommandOrder() { using (var pipeline = PipelineConfig.CreatePipeline()) { pipeline.RunCommand(null, "Test"); } Assert.Equal(4, HistoryOfVisits.Count); Assert.Collection(HistoryOfVisits, x => AssertForVisitor.CalledVisitCommand(VisitorA, "Test", x), x => AssertForVisitor.CalledVisitCommand(VisitorB, "Test", x), x => AssertForVisitor.CalledPostVisitCommand(VisitorB, "Test", x), x => AssertForVisitor.CalledPostVisitCommand(VisitorA, "Test", x)); }
public void WhenCallingRunCommandWithGivenCommandName_ThenDefaultVisitCommandCalledInExpectedStageCommandOrder() { using (var pipeline = PipelineConfig.CreatePipeline()) { // because the Visitor was defined without specifying command name, it will apply to any command run on pipeline, as long as it matches the command TPayload type pipeline.RunCommand(CommandName, "Test"); } Assert.Equal(4, HistoryOfVisits.Count); Assert.Collection(HistoryOfVisits, x => AssertForVisitor.CalledVisitCommand(VisitorA, "Test", x), x => AssertForVisitor.CalledVisitCommand(VisitorB, "Test", x), x => AssertForVisitor.CalledPostVisitCommand(VisitorB, "Test", x), x => AssertForVisitor.CalledPostVisitCommand(VisitorA, "Test", x)); }