コード例 #1
0
            public void GivenNoFramesReturnFalse()
            {
                Karass karass = new KarassDummy();
                KanKan kankan = new KanKan(karass, new FrameFactoryDummy());

                Assert.False(kankan.MoveNext());
            }
コード例 #2
0
                public void TeardownActionsAreCalled()
                {
                    bool teardownCalled = false;
                    bool frameCalled    = false;

                    bool FrameSpy(string message)
                    {
                        frameCalled = true;
                        return(true);
                    }

                    void TeardownSpy()
                    {
                        teardownCalled = true;
                    }

                    FrameRequest frameRequest = _mockFramesFactory.GetValidFrameRequest(FrameSpy);
                    Karass       karass       = _karassFactory.Get(
                        new List <List <Action> >(),
                        CreateActionListWith(TeardownSpy),
                        new List <FrameRequest[]>
                    {
                        new[]
                        {
                            frameRequest
                        }
                    });
                    KanKan kankan = new KanKan(karass, _frameFactory);

                    kankan.MoveNext();
                    Assert.True(frameCalled);
                    kankan.MoveNext();
                    Assert.True(teardownCalled);
                }
コード例 #3
0
            public void ThenOnlyContainsFirstFrame()
            {
                FrameRequest frameOne   = _mockFramesFactory.GetInvalidFrameRequest();
                FrameRequest frameTwo   = _mockFramesFactory.GetInvalidFrameRequest();
                FrameRequest frameThree = _mockFramesFactory.GetInvalidFrameRequest();
                FrameRequest frameFour  = _mockFramesFactory.GetInvalidFrameRequest();
                Karass       karass     = KarassFactory.Get(
                    new List <List <Action> >(),
                    new List <List <Action> >(),
                    new List <FrameRequest[]>
                {
                    new[]
                    {
                        frameOne,
                        frameTwo,
                        frameThree,
                        frameFour
                    }
                });
                KanKan kanKan = new KanKan(karass, new FrameFactoryDummy());

                Assert.True(kanKan.CurrentState.NextFrames.Contains(frameOne));
                Assert.False(kanKan.CurrentState.NextFrames.Contains(frameTwo));
                Assert.False(kanKan.CurrentState.NextFrames.Contains(frameThree));
                Assert.False(kanKan.CurrentState.NextFrames.Contains(frameFour));
            }
コード例 #4
0
        public void CurrentFramesReturnsNextFrames()
        {
            KarassFactory     karassFactory     = new KarassFactory();
            IDependencies     dependencies      = new KarassDependencies();
            FrameFactory      frameFactory      = new FrameFactory(dependencies);
            MockFramesFactory mockFramesFactory = new MockFramesFactory(frameFactory);

            IKarass karass = karassFactory.Get(new List <Action>(), new List <Action>(), new List <FrameRequest[]>()
            {
                new FrameRequest[]
                {
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                    mockFramesFactory.GetValidFrameRequest((_) => true),
                }
            });

            Assert.True(karass.FramesCollection[0].Length == 10);

            KanKan kanKan = new KanKan(karass, frameFactory);

            for (int i = 0; i < 10; i++)
            {
                Assert.AreEqual(kanKan.Current, kanKan.CurrentState.NextFrames);
                kanKan.MoveNext();
            }
        }
コード例 #5
0
            public void WithThreeFramesReturnCorrectValues()
            {
                IKarass karass = new KarassNumberOfFramesStub(2);
                KanKan  kankan = new KanKan(karass, new FrameFactoryDummy());

                Assert.True(kankan.MoveNext());
                Assert.False(kankan.MoveNext());
            }
コード例 #6
0
        public void GivenOneFrameCurrentIsNotNull()
        {
            IKarass karass = new KarassNumberOfFramesStub(1);

            Assert.True(karass.FramesCollection.Count == 1);
            KanKan kanKan = new KanKan(karass, new FrameFactory(new KarassDependencies()));

            Assert.NotNull(kanKan.Current);
        }
コード例 #7
0
        public void SetupIsRunOnMoveNext()
        {
            int    setupCounter = 0;
            Action setup        = () => { setupCounter++; };
            Karass testKarass   = KarassFactory.Get(CreateActionListWith(setup), new List <List <Action> >(),
                                                    new List <FrameRequest[]>());

            KanKan kankan = new KanKan(testKarass, new FrameFactoryDummy());

            kankan.MoveNext();
            Assert.True(setupCounter > 0);
        }
コード例 #8
0
            public void SetupIsRunOnFirstMoveNextOnly()
            {
                int    setupCounter = 0;
                Action setup        = () => { setupCounter++; };
                Karass testKarass   = KarassFactory.Get(CreateActionListWith(setup), new List <List <Action> >(), Frames);

                KanKan kankan = new KanKan(testKarass, _frameFactory);

                kankan.MoveNext();
                Assert.True(setupCounter == 1);
                kankan.MoveNext();
                Assert.True(setupCounter == 1);
            }
コード例 #9
0
            public void WithMultipleFramesReturnCorrectValues()
            {
                int     number = 42;
                IKarass karass = new KarassNumberOfFramesStub(number);
                KanKan  kankan = new KanKan(karass, new FrameFactoryDummy());

                for (int i = 0; i < number - 1; i++)
                {
                    bool returnValue = kankan.MoveNext();
                    Assert.True(returnValue);
                }

                Assert.False(kankan.MoveNext());
            }
コード例 #10
0
            public void SetupAndTearDownAreRun()
            {
                int    setupCounter    = 0;
                int    teardownCounter = 0;
                Action setup           = () => { setupCounter++; };
                Action teardown        = () => { teardownCounter++; };
                Karass testKarass      = KarassFactory.Get(CreateActionListWith(setup), CreateActionListWith(teardown),
                                                           new List <FrameRequest[]>());

                KanKan kankan = new KanKan(testKarass, new FrameFactory(new KarassDependencies()));

                kankan.MoveNext();
                Assert.True(setupCounter == 1);
                Assert.True(teardownCounter == 1);
            }
コード例 #11
0
        public void BothKarassSetupAndTeardownWillBeRun()
        {
            KarassFactory karassFactory = new KarassFactory();

            bool karassOneSetupRun = false;

            void KarassOneSetupSpy()
            {
                karassOneSetupRun = true;
            }

            bool karassTwoSetupRun = false;

            void KarassTwoSetupSpy()
            {
                karassTwoSetupRun = true;
            }

            bool karassOneTeardownRun = false;

            void KarassOneTeardownSpy()
            {
                karassOneTeardownRun = true;
            }

            bool karassTwoTeardownRun = false;

            void KarassTwoTeardownSpy()
            {
                karassTwoTeardownRun = true;
            }

            Karass karassOne = karassFactory.Get(KarassOneSetupSpy, KarassOneTeardownSpy,
                                                 new List <FrameRequest[]>());

            Karass karassTwo = karassFactory.Get(KarassTwoSetupSpy, KarassTwoTeardownSpy,
                                                 new List <FrameRequest[]>());

            KanKan kankan = new KanKan(new IKarass[] { karassOne, karassTwo }, new FrameFactory(new KarassDependencies()));

            kankan.MoveNext();

            Assert.True(karassOneSetupRun);
            Assert.True(karassTwoSetupRun);
            Assert.True(karassOneTeardownRun);
            Assert.True(karassTwoTeardownRun);
        }
コード例 #12
0
                public void SetupAndTeardownIsRun()
                {
                    int    setupCounter    = 0;
                    int    teardownCounter = 0;
                    Action setup           = () => { setupCounter++; };
                    Action teardown        = () => { teardownCounter++; };
                    Karass testKarass      = _karassFactory.Get(CreateActionListWith(setup), CreateActionListWith(teardown),
                                                                Frames);

                    KanKan kanKan = new KanKan(testKarass, _frameFactory);

                    kanKan.MoveNext();

                    Assert.True(setupCounter == 1);
                    Assert.True(teardownCounter == 1);
                    Assert.True(_frameRun);
                }
コード例 #13
0
            public void ThenTheFrameIsInCurrentFrames()
            {
                FrameRequest frame = _mockFramesFactory.GetInvalidFrameRequest();

                Karass karass = KarassFactory.Get(
                    new List <List <Action> >(),
                    new List <List <Action> >(),
                    new List <FrameRequest[]>
                {
                    new[]
                    {
                        frame
                    }
                });
                KanKan kanKan = new KanKan(karass, new FrameFactoryDummy());

                Assert.True(kanKan.CurrentState.NextFrames.Contains(frame));
            }
コード例 #14
0
        public void GivenNoMoveNextFirstFrameReturnedOnReset()
        {
            KarassFramesStub karass = new KarassFramesStub(
                new List <FrameRequest[]> {
                new[]
                {
                    _mockFramesFactory.GetValidFrameRequest(FirstFrameSpy)
                }
            },
                _dependencies,
                _frameFactory
                );
            KanKan kanKan = new KanKan(karass, _frameFactory);

            kanKan.MoveNext();
            kanKan.Reset();
            kanKan.MoveNext();
            Assert.True(_timesFirstFrameRun == 2);
        }
コード例 #15
0
            public void ThenOnlyTheFirstFramesAreInCurrentFrames()
            {
                FrameRequest setOneFrameOne   = _mockFramesFactory.GetInvalidFrameRequest();
                FrameRequest setOneFrameTwo   = _mockFramesFactory.GetInvalidFrameRequest();
                FrameRequest setOneFrameThree = _mockFramesFactory.GetInvalidFrameRequest();


                FrameRequest setTwoFrameOne   = _mockFramesFactory.GetInvalidFrameRequest();
                FrameRequest setTwoFrameTwo   = _mockFramesFactory.GetInvalidFrameRequest();
                FrameRequest setTwoFrameThree = _mockFramesFactory.GetInvalidFrameRequest();
                Karass       karass           = KarassFactory.Get(
                    new List <List <Action> >(),
                    new List <List <Action> >(),
                    new List <FrameRequest[]>
                {
                    new[]
                    {
                        setOneFrameOne,
                        setOneFrameTwo,
                        setOneFrameThree
                    },
                    new[]
                    {
                        setTwoFrameOne,
                        setTwoFrameTwo,
                        setTwoFrameThree
                    }
                });
                KanKan kanKan = new KanKan(karass, new FrameFactoryDummy());

                Assert.True(kanKan.CurrentState.NextFrames.Contains(setOneFrameOne));
                Assert.True(kanKan.CurrentState.NextFrames.Contains(setTwoFrameOne));

                Assert.False(kanKan.CurrentState.NextFrames.Contains(setOneFrameTwo));
                Assert.False(kanKan.CurrentState.NextFrames.Contains(setTwoFrameTwo));

                Assert.False(kanKan.CurrentState.NextFrames.Contains(setOneFrameTwo));
                Assert.False(kanKan.CurrentState.NextFrames.Contains(setTwoFrameTwo));
            }
コード例 #16
0
            public void ThenBothFramesAreInCurrentFrames()
            {
                FrameRequest setOneFrame = _mockFramesFactory.GetInvalidFrameRequest();
                FrameRequest setTwoFrame = _mockFramesFactory.GetInvalidFrameRequest();

                Karass karass = KarassFactory.Get(
                    new List <List <Action> >(),
                    new List <List <Action> >(),
                    new List <FrameRequest[]>
                {
                    new[]
                    {
                        setOneFrame
                    },
                    new[]
                    {
                        setTwoFrame
                    }
                });
                KanKan kanKan = new KanKan(karass, new FrameFactory(new KarassDependencies()));

                Assert.True(kanKan.CurrentState.NextFrames.Contains(setOneFrame));
                Assert.True(kanKan.CurrentState.NextFrames.Contains(setTwoFrame));
            }
コード例 #17
0
        public void ThenKarassWillRunCorrectly()
        {
            bool karassOneSetupRun = false;

            void KarassOneSetupSpy()
            {
                karassOneSetupRun = true;
            }

            bool karassOneTeardownRun = false;

            void KarassOneTeardownSpy()
            {
                karassOneTeardownRun = true;
            }

            bool karassOneFrameOneRun = false;

            bool KarassOneFrameOneSpy(string message)
            {
                karassOneFrameOneRun = true;
                return(true);
            }

            FrameRequest karassOneFrameOneSpyRequest =
                _mockFramesFactory.GetValidFrameRequest(KarassOneFrameOneSpy);

            Karass karassOne = _karassFactory.Get(KarassOneSetupSpy, KarassOneTeardownSpy,
                                                  new List <FrameRequest[]>
            {
                new[]
                {
                    karassOneFrameOneSpyRequest
                }
            });


            bool karassTwoSetupRun = false;

            void KarassTwoSetupSpy()
            {
                karassTwoSetupRun = true;
            }

            bool karassTwoTeardownRun = false;

            void KarassTwoTeardownSpy()
            {
                karassTwoTeardownRun = true;
            }

            bool karassTwoFrameOneRun   = false;
            bool karassTwoFrameTwoRun   = false;
            bool karassTwoFrameThreeRun = false;

            bool KarassTwoFrameOneSpy(string message)
            {
                karassTwoFrameOneRun = true;
                return(true);
            }

            bool KarassTwoFrameTwoSpy(string message)
            {
                karassTwoFrameTwoRun = true;
                return(true);
            }

            bool KarassTwoFrameThreeSpy(string message)
            {
                karassTwoFrameThreeRun = true;
                return(true);
            }

            FrameRequest karassTwoFrameOneSpyRequest =
                _mockFramesFactory.GetValidFrameRequest(KarassTwoFrameOneSpy);


            FrameRequest karassTwoFrameTwoSpyRequest =
                _mockFramesFactory.GetValidFrameRequest(KarassTwoFrameTwoSpy);


            FrameRequest karassTwoFrameThreeSpyRequest =
                _mockFramesFactory.GetValidFrameRequest(KarassTwoFrameThreeSpy);


            Karass karassTwo = _karassFactory.Get(KarassTwoSetupSpy, KarassTwoTeardownSpy,
                                                  new List <FrameRequest[]>
            {
                new[]
                {
                    karassTwoFrameOneSpyRequest,
                    karassTwoFrameTwoSpyRequest,
                    karassTwoFrameThreeSpyRequest,
                }
            });


            bool karassThreeSetupRun = false;

            void KarassThreeSetupSpy()
            {
                karassThreeSetupRun = true;
            }

            bool karassThreeTeardownRun = false;

            void KarassThreeTeardownSpy()
            {
                karassThreeTeardownRun = true;
            }

            bool karassThreeFrameOneRun = false;


            bool KarassThreeFrameOneSpy(string message)
            {
                karassThreeFrameOneRun = true;
                return(true);
            }

            FrameRequest karassThreeFrameOneSpyRequest =
                _mockFramesFactory.GetValidFrameRequest(KarassThreeFrameOneSpy);

            Karass karassThree = _karassFactory.Get(KarassThreeSetupSpy, KarassThreeTeardownSpy,
                                                    new List <FrameRequest[]>
            {
                new[]
                {
                    karassThreeFrameOneSpyRequest
                }
            });


            bool karassFourSetupRun = false;

            void KarassFourSetupSpy()
            {
                karassFourSetupRun = true;
            }

            bool karassFourTeardownRun = false;

            void KarassFourTeardownSpy()
            {
                karassFourTeardownRun = true;
            }

            bool karassFourFrameOneRun = false;
            bool karassFourFrameTwoRun = false;

            bool KarassFourFrameOneSpy(string message)
            {
                karassFourFrameOneRun = true;
                return(true);
            }

            bool KarassFourFrameTwoSpy(string message)
            {
                karassFourFrameTwoRun = true;
                return(true);
            }

            FrameRequest karassFourFrameOneSpyRequest =
                _mockFramesFactory.GetValidFrameRequest(KarassFourFrameOneSpy);


            FrameRequest karassFourFrameTwoSpyRequest =
                _mockFramesFactory.GetValidFrameRequest(KarassFourFrameTwoSpy);


            Karass karassFour = _karassFactory.Get(KarassFourSetupSpy, KarassFourTeardownSpy,
                                                   new List <FrameRequest[]>
            {
                new[]
                {
                    karassFourFrameOneSpyRequest,
                    karassFourFrameTwoSpyRequest
                }
            });

            KanKan kankan = new KanKan(
                new IKarass[] { karassOne, karassTwo, karassThree, karassFour },
                _frameFactory);
            bool moveNext = kankan.MoveNext();

            CheckFirstFrame(karassOneSetupRun, karassOneTeardownRun, karassOneFrameOneRun, karassTwoSetupRun,
                            karassTwoTeardownRun, karassTwoFrameOneRun, karassTwoFrameTwoRun, karassTwoFrameThreeRun, moveNext,
                            karassThreeSetupRun, karassThreeTeardownRun, karassThreeFrameOneRun, karassFourSetupRun,
                            karassFourTeardownRun, karassFourFrameOneRun, karassFourFrameTwoRun);

            moveNext = kankan.MoveNext();


            CheckSecondFrame(karassOneSetupRun, karassOneTeardownRun, karassOneFrameOneRun, karassTwoSetupRun,
                             karassTwoTeardownRun, karassTwoFrameOneRun, karassTwoFrameTwoRun, karassTwoFrameThreeRun,
                             karassThreeSetupRun, karassThreeTeardownRun, karassThreeFrameOneRun, karassFourSetupRun,
                             karassFourTeardownRun, karassFourFrameOneRun, karassFourFrameTwoRun, moveNext);


            moveNext = kankan.MoveNext();

            CheckThirdFrame(karassOneSetupRun, karassOneTeardownRun, karassOneFrameOneRun, karassTwoSetupRun,
                            karassTwoTeardownRun, karassTwoFrameOneRun, karassTwoFrameTwoRun, karassTwoFrameThreeRun,
                            karassThreeSetupRun, karassThreeTeardownRun, karassThreeFrameOneRun, karassFourSetupRun,
                            karassFourTeardownRun, karassFourFrameOneRun, karassFourFrameTwoRun, moveNext);
            moveNext = kankan.MoveNext();

            CheckFourthFrame(karassOneSetupRun, karassOneTeardownRun, karassOneFrameOneRun, karassTwoSetupRun,
                             karassTwoTeardownRun, karassTwoFrameOneRun, karassTwoFrameTwoRun, karassTwoFrameThreeRun,
                             karassThreeSetupRun, karassThreeTeardownRun, karassThreeFrameOneRun, karassFourSetupRun,
                             karassFourTeardownRun, karassFourFrameOneRun, karassFourFrameTwoRun, moveNext);

            moveNext = kankan.MoveNext();

            CheckFifthFrame(karassOneSetupRun, karassOneTeardownRun, karassOneFrameOneRun, karassTwoSetupRun,
                            karassTwoTeardownRun, karassTwoFrameOneRun, karassTwoFrameTwoRun, karassTwoFrameThreeRun,
                            karassThreeSetupRun, karassThreeTeardownRun, karassThreeFrameOneRun, karassFourSetupRun,
                            karassFourTeardownRun, karassFourFrameOneRun, karassFourFrameTwoRun, moveNext);

            moveNext = kankan.MoveNext();

            CheckSixthFrame(karassOneSetupRun, karassOneTeardownRun, karassOneFrameOneRun, karassTwoSetupRun,
                            karassTwoTeardownRun, karassTwoFrameOneRun, karassTwoFrameTwoRun, karassTwoFrameThreeRun,
                            karassThreeSetupRun, karassThreeTeardownRun, karassThreeFrameOneRun, karassFourSetupRun,
                            karassFourTeardownRun, karassFourFrameOneRun, karassFourFrameTwoRun, moveNext);

            moveNext = kankan.MoveNext();

            CheckSeventhFrame(karassOneSetupRun, karassOneTeardownRun, karassOneFrameOneRun, karassTwoSetupRun,
                              karassTwoTeardownRun, karassTwoFrameOneRun, karassTwoFrameTwoRun, karassTwoFrameThreeRun,
                              karassThreeSetupRun, karassThreeTeardownRun, karassThreeFrameOneRun, karassFourSetupRun,
                              karassFourTeardownRun, karassFourFrameOneRun, karassFourFrameTwoRun, moveNext);
        }
コード例 #18
0
            public void ThenNextFramesIsCorrectlyUpdated()
            {
                FrameRequest setOneFrameOneSpyRequest = _mockFramesFactory.GetValidFrameRequest(SetOneFrameOneSpy);
                FrameRequest setOneFrameTwoSpyRequest = _mockFramesFactory.GetValidFrameRequest(SetOneFrameTwoSpy);
                FrameRequest setTwoFrameOneSpyRequest = _mockFramesFactory.GetValidFrameRequest(SetTwoFrameOneSpy);
                FrameRequest setTwoFrameTwoSpyRequest = _mockFramesFactory.GetValidFrameRequest(SetTwoFrameTwoSpy);


                bool setOneFrameOneRun = false;

                bool SetOneFrameOneSpy(string s)
                {
                    setOneFrameOneRun = true;
                    return(true);
                }

                bool setOneFrameTwoRun = false;

                bool SetOneFrameTwoSpy(string s)
                {
                    setOneFrameTwoRun = true;
                    return(true);
                }

                bool setTwoFrameOneRun = false;

                bool SetTwoFrameOneSpy(string s)
                {
                    setTwoFrameOneRun = true;
                    return(true);
                }

                bool setTwoFrameTwoRun = false;

                bool SetTwoFrameTwoSpy(string s)
                {
                    setTwoFrameTwoRun = true;
                    return(true);
                }

                Karass karass = _karassFactory.Get(new List <List <Action> >(), new List <List <Action> >(),
                                                   new List <FrameRequest[]>
                {
                    new[]
                    {
                        setOneFrameOneSpyRequest,
                        setOneFrameTwoSpyRequest
                    },
                    new[]
                    {
                        setTwoFrameOneSpyRequest,
                        setTwoFrameTwoSpyRequest
                    }
                });

                KanKan kankan = new KanKan(karass, _frameFactory);

                Assert.True(kankan.CurrentState.NextFrames.Count == 2);
                Assert.True(kankan.CurrentState.NextFrames.Contains(setOneFrameOneSpyRequest));
                Assert.True(kankan.CurrentState.NextFrames.Contains(setTwoFrameOneSpyRequest));

                kankan.MoveNext();
                Assert.True(kankan.CurrentState.NextFrames.Count == 2);
                Assert.True(kankan.CurrentState.NextFrames.Contains(setOneFrameTwoSpyRequest));
                Assert.True(kankan.CurrentState.NextFrames.Contains(setTwoFrameTwoSpyRequest));

                Assert.True(setOneFrameOneRun);
                Assert.False(setOneFrameTwoRun);
                Assert.True(setTwoFrameOneRun);
                Assert.False(setTwoFrameTwoRun);

                kankan.MoveNext();

                Assert.False(kankan.CurrentState.NextFrames.Any());

                Assert.True(setOneFrameOneRun);
                Assert.True(setOneFrameTwoRun);
                Assert.True(setTwoFrameOneRun);
                Assert.True(setTwoFrameTwoRun);
            }
コード例 #19
0
            public void ThenFrameSetsAreRunIndependently()
            {
                FrameRequest frameSetOneRequestOne   = _mockFramesFactory.GetValidFrameRequest(FrameSetOneFrameOneSpy);
                FrameRequest frameSetOneRequestTwo   = _mockFramesFactory.GetValidFrameRequest(FrameSetOneFrameTwoSpy);
                FrameRequest frameSetOneRequestThree = _mockFramesFactory.GetValidFrameRequest(FrameSetOneFrameThreeSpy);


                FrameRequest frameSetTwpRequestOne = _mockFramesFactory.GetValidFrameRequest(FrameSetTwoFrameOneSpy);
                FrameRequest frameSetTwoRequestTwo = _mockFramesFactory.GetValidFrameRequest(FrameSetTwoFrameTwoSpy);

                bool setOneSetupRun = false;

                void FrameSetOneSetupSpy()
                {
                    setOneSetupRun = true;
                }

                bool setOneTeardownRun = false;

                void FrameSetOneTeardownSpy()
                {
                    setOneTeardownRun = true;
                }

                bool setOneFrameOneRun = false;

                bool FrameSetOneFrameOneSpy(string message)
                {
                    setOneFrameOneRun = true;
                    return(true);
                }

                bool setOneFrameTwoRun = false;

                bool FrameSetOneFrameTwoSpy(string message)
                {
                    setOneFrameTwoRun = true;
                    return(true);
                }

                bool setOneFrameThreeRun = false;

                bool FrameSetOneFrameThreeSpy(string message)
                {
                    setOneFrameThreeRun = true;
                    return(true);
                }

                bool setTwoSetupRun = false;

                void FrameSetTwoSetupSpy()
                {
                    setTwoSetupRun = true;
                }

                bool setTwoTeardownRun = false;

                void FrameSetTwoTeardownSpy()
                {
                    setTwoTeardownRun = true;
                }

                bool setTwoFrameOneRun = false;

                bool FrameSetTwoFrameOneSpy(string message)
                {
                    setTwoFrameOneRun = true;
                    return(true);
                }

                bool setTwoFrameTwoRun = false;

                bool FrameSetTwoFrameTwoSpy(string message)
                {
                    setTwoFrameTwoRun = true;
                    return(true);
                }

                Karass karassOne = KarassFactory.Get(CreateActionListWith(FrameSetOneSetupSpy),
                                                     CreateActionListWith(FrameSetOneTeardownSpy),
                                                     new List <FrameRequest[]>
                {
                    new[]
                    {
                        frameSetOneRequestOne,
                        frameSetOneRequestTwo,
                        frameSetOneRequestThree
                    }
                });

                Karass karassTwo = KarassFactory.Get(CreateActionListWith(FrameSetTwoSetupSpy),
                                                     CreateActionListWith(FrameSetTwoTeardownSpy),
                                                     new List <FrameRequest[]>
                {
                    new[]
                    {
                        frameSetTwpRequestOne,
                        frameSetTwoRequestTwo
                    }
                });

                KanKan kankan = new KanKan(karassOne + karassTwo, _frameFactory);


                Assert.True(kankan.CurrentState.NextFrames.Contains(frameSetOneRequestOne));
                Assert.True(kankan.CurrentState.NextFrames.Contains(frameSetTwpRequestOne));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetOneRequestTwo));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetTwoRequestTwo));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetOneRequestThree));


                kankan.MoveNext();

                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetOneRequestOne));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetTwpRequestOne));
                Assert.True(kankan.CurrentState.NextFrames.Contains(frameSetOneRequestTwo));
                Assert.True(kankan.CurrentState.NextFrames.Contains(frameSetTwoRequestTwo));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetOneRequestThree));

                CheckFirstFrame(setOneSetupRun, setTwoSetupRun, setOneTeardownRun, setTwoTeardownRun, setOneFrameOneRun,
                                setTwoFrameOneRun, setOneFrameTwoRun, setOneFrameThreeRun, setTwoFrameTwoRun);


                kankan.MoveNext();
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetOneRequestOne));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetTwpRequestOne));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetOneRequestTwo));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameSetTwoRequestTwo));
                Assert.True(kankan.CurrentState.NextFrames.Contains(frameSetOneRequestThree));

                CheckSecondFrame(setOneSetupRun, setTwoSetupRun, setOneTeardownRun, setTwoTeardownRun,
                                 setOneFrameOneRun, setTwoFrameOneRun, setOneFrameTwoRun, setTwoFrameTwoRun, setOneFrameThreeRun);


                kankan.MoveNext();
                Assert.False(kankan.CurrentState.NextFrames.Any());
                CheckThirdFrame(setOneSetupRun, setTwoSetupRun, setOneTeardownRun, setTwoTeardownRun, setOneFrameOneRun,
                                setTwoFrameOneRun, setOneFrameTwoRun, setTwoFrameTwoRun, setOneFrameThreeRun);
            }
コード例 #20
0
            public void ThenNextFramesCorrectlyProgressThroughFrames()
            {
                FrameRequest frameRequestOne   = _mockFramesFactory.GetValidFrameRequest(FrameOneSpy);
                FrameRequest frameRequestTwo   = _mockFramesFactory.GetValidFrameRequest(FrameTwoSpy);
                FrameRequest frameRequestThree = _mockFramesFactory.GetValidFrameRequest(FrameThreeSpy);

                bool frameOneRun = false;

                bool FrameOneSpy(string s)
                {
                    frameOneRun = true;
                    return(true);
                }

                bool frameTwoRun = false;

                bool FrameTwoSpy(string s)
                {
                    frameTwoRun = true;
                    return(true);
                }

                bool frameThreeRun = false;

                bool FrameThreeSpy(string s)
                {
                    frameThreeRun = true;
                    return(true);
                }

                bool setupRun = false;

                void SetupSpy()
                {
                    setupRun = true;
                }

                bool tearDownRun = false;

                void TeardownSpy()
                {
                    tearDownRun = true;
                }

                Karass karass = KarassFactory.Get(
                    CreateActionListWith(SetupSpy),
                    CreateActionListWith(TeardownSpy),
                    new List <FrameRequest[]>
                {
                    new[]
                    {
                        frameRequestOne,
                        frameRequestTwo,
                        frameRequestThree
                    }
                });

                KanKan kankan = new KanKan(karass, _frameFactory);

                Assert.True(kankan.CurrentState.NextFrames.Contains(frameRequestOne));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameRequestTwo));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameRequestThree));

                kankan.MoveNext();

                Assert.False(kankan.CurrentState.NextFrames.Contains(frameRequestOne));
                Assert.True(kankan.CurrentState.NextFrames.Contains(frameRequestTwo));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameRequestThree));


                CheckFirstFrame(setupRun, frameOneRun, tearDownRun, frameTwoRun, frameThreeRun);


                kankan.MoveNext();

                Assert.False(kankan.CurrentState.NextFrames.Contains(frameRequestOne));
                Assert.False(kankan.CurrentState.NextFrames.Contains(frameRequestTwo));
                Assert.True(kankan.CurrentState.NextFrames.Contains(frameRequestThree));


                CheckSecondFrame(setupRun, frameOneRun, tearDownRun, frameTwoRun, frameThreeRun);

                kankan.MoveNext();

                Assert.False(kankan.CurrentState.NextFrames.Any());

                CheckThirdFrame(setupRun, frameOneRun, tearDownRun, frameTwoRun, frameThreeRun);
            }
コード例 #21
0
        public void GivenNoFramesCurrentReturnsNotNull()
        {
            IEnumerator ukankan = new KanKan(new KarassDummy(), new FrameFactory(new KarassDependencies()));

            Assert.NotNull(ukankan.Current);
        }