public void TestTailenderBatsmanBehaviorForEven()
        {
            MockRangeRunGenAuto batRunGen = new MockRangeRunGenAuto(new List <int>()
            {
                0, 1, 1, 2
            });
            MockRangeRunGenAuto bowlRunGen = new MockRangeRunGenAuto(new List <int>()
            {
                1, 1, 2, 2
            });

            CricketGame game = new CricketGame(1, 4, BatsmanType.Tailender, BowlerType.Normal, new MockPlayerFactory(batRunGen, bowlRunGen), new OutStrategyFactory());

            Assert.AreEqual(GameResult.BowlerWon, game.Simulate().Result, "Tailender batsman cannot wicket if both odd or even");
        }
        public void TestParttimeBowlerBehavior()
        {
            MockRangeRunGenAuto batRunGen = new MockRangeRunGenAuto(new List <int>()
            {
                0, 1, 2, 4
            });
            MockRangeRunGenAuto bowlRunGen = new MockRangeRunGenAuto(new List <int>()
            {
                1, 1, 1, 1
            });
            CricketGame game = new CricketGame(1, 4, BatsmanType.Normal, BowlerType.Parttime, new MockPlayerFactory(batRunGen, bowlRunGen), new OutStrategyFactory());

            Assert.AreEqual(GameResult.BatsmanWon, game.Simulate().Result, "Parttime bowler cannot take wicket on second ball");
            batRunGen.Reset();
            bowlRunGen.Reset();
            game = new CricketGame(1, 4, BatsmanType.Normal, BowlerType.Normal, new MockPlayerFactory(batRunGen, bowlRunGen), new OutStrategyFactory());
            Assert.AreEqual(GameResult.BowlerWon, game.Simulate().Result, "Normal Bowler should take wicket on second ball");
        }