public int GetsCorrectVictor(Pick p1, Pick p2)
        {
            List<IPlayer> players = new List<IPlayer>();
            IPlayer player1 = Substitute.For<IPlayer>();
            player1.Pick.Returns(p1);
            player1.Slot.Returns(1);
            players.Add(player1);
            IPlayer player2 = Substitute.For<IPlayer>();
            player2.Pick.Returns(p2);
            player2.Slot.Returns(2);

            players.Add(player2);

            var game = new Game(players);

            var gameResult = Result.None;
            var victor = -1;

            game.GameEnds = (result, i) =>
            {
                gameResult = result;
                victor = i;
            };

            game.StartGame();
            Thread.Sleep(100);
            Assert.AreEqual(Result.Victory, gameResult);

            return victor;
        }
 public void CallsAllDelegates()
 {
     var game = new Game(null);
     bool cd1 = false;
     bool cd2 = false;
     bool cd3 = false;
     game.CountDownTickOne = () => cd1 = true;
     game.CountDownTickTwo = () => cd2 = true;
     game.CountDownTickGo = () => cd3 = true;
     game.StartGame();
     Thread.Sleep(100);
     Assert.AreEqual(true, cd1);
     Assert.AreEqual(true, cd2);
     Assert.AreEqual(true, cd3);
 }