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 WhenStartingAndEndingSessionAndDisposingPipeline_ThenSessionNotAborted() { using (var pipeline = PipelineConfig.CreatePipeline()) { pipeline.StartSession(); Assert.True(pipeline.SessionStarted); Assert.False(pipeline.SessionAborted); pipeline.EndSession(); Assert.False(pipeline.SessionStarted); Assert.False(pipeline.SessionAborted); } Assert.Equal(8, HistoryOfVisits.Count); Assert.Collection(HistoryOfVisits, x => AssertForVisitor.CalledStartSession(VisitorA, x), x => AssertForVisitor.CalledStartSession(VisitorB, x), x => AssertForVisitor.CalledPostStartSession(VisitorB, x), x => AssertForVisitor.CalledPostStartSession(VisitorA, x), x => AssertForVisitor.CalledEndSession(VisitorA, x), x => AssertForVisitor.CalledEndSession(VisitorB, x), x => AssertForVisitor.CalledPostEndSession(VisitorB, x), x => AssertForVisitor.CalledPostEndSession(VisitorA, x) ); }
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)); }
private void AssertSessionStartedAndAborted() { Assert.Equal(8, HistoryOfVisits.Count); Assert.Collection(HistoryOfVisits, x => AssertForVisitor.CalledStartSession(VisitorA, x), x => AssertForVisitor.CalledStartSession(VisitorB, x), x => AssertForVisitor.CalledPostStartSession(VisitorB, x), x => AssertForVisitor.CalledPostStartSession(VisitorA, x), x => AssertForVisitor.CalledAbortSession(VisitorA, x), x => AssertForVisitor.CalledAbortSession(VisitorB, x), x => AssertForVisitor.CalledPostAbortSession(VisitorB, x), x => AssertForVisitor.CalledPostAbortSession(VisitorA, 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)); }
public void WhenStartingSession_ThenStartSessionCalledInExpectedStageCommandOrder() { using (var pipeline = PipelineConfig.CreatePipeline()) { pipeline.StartSession(); Assert.True(pipeline.SessionStarted); Assert.Equal(4, HistoryOfVisits.Count); Assert.Collection(HistoryOfVisits, x => AssertForVisitor.CalledStartSession(VisitorA, x), x => AssertForVisitor.CalledStartSession(VisitorB, x), x => AssertForVisitor.CalledPostStartSession(VisitorB, x), x => AssertForVisitor.CalledPostStartSession(VisitorA, x)); } }
public void WhenStartingSessionTwice_ThenSessionOnlyStartedOnce() { using (var pipeline = PipelineConfig.CreatePipeline()) { pipeline.StartSession(); pipeline.StartSession(); Assert.True(pipeline.SessionStarted); Assert.Equal(4, HistoryOfVisits.Count); Assert.Collection(HistoryOfVisits, x => AssertForVisitor.CalledStartSession(VisitorA, x), x => AssertForVisitor.CalledStartSession(VisitorB, x), x => AssertForVisitor.CalledPostStartSession(VisitorB, x), x => AssertForVisitor.CalledPostStartSession(VisitorA, x)); } Assert.Equal(8, HistoryOfVisits.Count); // and it has been aborted }