예제 #1
0
        public void Validate_PlayerIsNotcurrent_ReturnsFalse()
        {
            GoFishGame         game = GameProvider.Game;
            Player             from = game.Players[1];
            Player             to   = game.Players[2];
            PassTurnGameAction ga   = new PassTurnGameAction(from, to);

            Game.Lib.Result result = ga.Validate(game);

            Assert.IsFalse(result.Success);
        }
예제 #2
0
        public void Validate_ClockwiseValid_ReturnsTrue()
        {
            GoFishGame game = GameProvider.Game;

            game.RuleSet.TurnBehaviour = TurnBehaviour.ClockWise;
            Player             from = game.CurrentPlayer;
            Player             to   = game.NextPlayer;
            PassTurnGameAction ga   = new PassTurnGameAction(from, to);

            Game.Lib.Result result = ga.Validate(game);

            Assert.IsTrue(result.Success);
        }
예제 #3
0
        public void Validate_LastAskedPlayerIsSelf_ReturnsFalse()
        {
            GoFishGame game = GameProvider.Game;

            game.RuleSet.TurnBehaviour = TurnBehaviour.LastAskedPlayer;
            Player             from = game.CurrentPlayer;
            Player             to   = from;
            PassTurnGameAction ga   = new PassTurnGameAction(from, to);

            Game.Lib.Result result = ga.Validate(game);

            Assert.IsFalse(result.Success);
        }
예제 #4
0
        public void Apply_ValidAction_SetsCurrentPlayerToNewPlayer()
        {
            GoFishGame game = GameProvider.Game;

            game.RuleSet.TurnBehaviour = TurnBehaviour.LastAskedPlayer;
            Player             from = game.CurrentPlayer;
            Player             to   = game.Players[2];
            PassTurnGameAction ga   = new PassTurnGameAction(from, to);

            ga.Perform(ref game);

            Assert.AreEqual(to, game.CurrentPlayer);
        }
예제 #5
0
        public Result Pass(Guid id)
        {
            GoFishGame game = _gameAccessor.Game;

            Guid   fromGuid = _userContextProvider.UserId;
            Player from     = game.Players.FirstOrDefault(p => p.Id.Equals(fromGuid));
            Player to       = game.Players.FirstOrDefault(p => p.Id.Equals(id));

            PassTurnGameAction gameAction = new PassTurnGameAction(from, to);

            Result result = _gameManager.PerformAction(gameAction, ref game);

            return(result);
        }
예제 #6
0
        public void Validate_LastAskedPlayerHasNoCards_ReturnsFalse()
        {
            GoFishGame game = GameProvider.Game;

            game.RuleSet.TurnBehaviour = TurnBehaviour.LastAskedPlayer;
            Player from = game.CurrentPlayer;
            Player to   = game.Players[2];

            to.Cards = new HashSet <Card>();
            PassTurnGameAction ga = new PassTurnGameAction(from, to);

            Game.Lib.Result result = ga.Validate(game);

            Assert.IsFalse(result.Success);
        }
예제 #7
0
        public void Validate_LastAskedPlayerNotInTheGame_ReturnsFalse()
        {
            GoFishGame game = GameProvider.Game;

            game.RuleSet.TurnBehaviour = TurnBehaviour.LastAskedPlayer;
            Player from = game.CurrentPlayer;
            Player to   = new Player(Guid.NewGuid(), "Test")
            {
                Cards = CardProvider.HashSetCards
            };
            PassTurnGameAction ga = new PassTurnGameAction(from, to);

            Game.Lib.Result result = ga.Validate(game);

            Assert.IsFalse(result.Success);
        }