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]);
                }
Exemple #2
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));
        }
Exemple #4
0
        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));
        }
Exemple #6
0
        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));
            }
        }
Exemple #7
0
        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
        }