コード例 #1
0
        public void APlayerCanHaveAVisitAndSeeTheirScoreChange()
        {
            var leg = new Leg(501);
            var player = new Player("Andy");
            leg.AddPlayer(player);
            var visit = new Visit(player, 100);

            var newScore = leg.Visit(visit);

            Assert.AreEqual(401, newScore);
        }
コード例 #2
0
        public void AnErrorIsThronWhenAPlayerReaches0WithAnImpossibleCheckout()
        {
            var leg = new Leg(501);
            var player = new Player("Andy");
            leg.AddPlayer(player);
            var visit = new Visit(player, 100);
            var checkoutVisit = new Visit(player, 101);

            leg.Visit(new Visit(player, 100));//401
            leg.Visit(new Visit(player, 100));//301
            leg.Visit(new Visit(player, 100));//201
            leg.Visit(new Visit(player, 39));//162
            leg.Visit(new Visit(player, 162));
        }
コード例 #3
0
        public void APlayersScoreCanReachExacly0()
        {
            var leg = new Leg(501);
            var player = new Player("Andy");
            leg.AddPlayer(player);
            var visit = new Visit(player, 100);
            var checkoutVisit = new Visit(player, 101);

            leg.Visit(visit);//401
            leg.Visit(visit);//301
            leg.Visit(visit);//201
            leg.Visit(visit);//101
            var score = leg.Visit(checkoutVisit);//1 = bust, therefore 101

            Assert.AreEqual(0, leg.Players[0].Score);
        }
コード例 #4
0
        public void APlayersScoreRemainsTheSameWhenTheirOverallScoreGoBelow2()
        {
            var leg = new Leg(501);
            var player = new Player("Andy");
            leg.AddPlayer(player);
            var visit = new Visit(player, 100);

            leg.Visit(visit);//401
            leg.Visit(visit);//301
            leg.Visit(visit);//201
            leg.Visit(visit);//101
            var score = leg.Visit(visit);//1 = bust, therefore 101

            Assert.AreEqual(101, leg.Players[0].Score);
        }
コード例 #5
0
        public void ICannotAddAPlayerToALegWithoutAName()
        {
            var leg = new Leg(501);
            var player = new Player(null);

            leg.AddPlayer(player);
        }
コード例 #6
0
        public void ICannotAddAPlayerToALegWithANameLongerThan10Characters()
        {
            var leg = new Leg(501);
            var player = new Player("12345678910");

            leg.AddPlayer(player);
        }
コード例 #7
0
        public void ICannotAddAPlayerToALegWithANameAsEmptyString()
        {
            var leg = new Leg(501);
            var player = new Player("");

            leg.AddPlayer(player);
        }
コード例 #8
0
        public void ICannotAdd2PlayersToALegWithTheSameName()
        {
            var leg = new Leg(501);
            var player = new Player("Andy");

            leg.AddPlayer(player);
            leg.AddPlayer(player);
        }
コード例 #9
0
        public void ICanCheckIfTheLegHasBeenWonWhenPlayerHasWon()
        {
            var leg = new Leg(501);
            var player = new Player("Andy");
            leg.AddPlayer(player);

            leg.Visit(new Visit(player, 100));//401
            leg.Visit(new Visit(player, 100));//301
            leg.Visit(new Visit(player, 100));//201
            leg.Visit(new Visit(player, 100));//101
            leg.Visit(new Visit(player, 101));//0

            var hasWon = leg.HasPlayerWon(player);

            Assert.IsTrue(hasWon);
        }
コード例 #10
0
        public void ICanAddAPlayerToALeg()
        {
            var leg = new Leg(501);
            var player = new Player("Andy");

            leg.AddPlayer(player);

            Assert.AreEqual(1, leg.Players.Count);
            Assert.AreEqual("Andy", leg.Players[0].Name);
            Assert.AreEqual(501, leg.Players[0].Score);
        }