public IBoardSpace SpaceAt(BoardSpace.SpaceKeys position)
 {
     return SpaceAt((int)position);
 }
        public void TestUnsuccessfulPurchaseCurrentSpace(string args, BoardSpace.SpaceKeys space, int defaultCash, int expectedCash)
        {
            CreateGame(args);

            IPlayer player = game.Players.First();

            player.Cash = defaultCash;

            RealEstateSpace realEstateSpace = (RealEstateSpace)game.Board.SpaceAt(space);

            game.PurchaseCurrentSpace(player, realEstateSpace);

            Assert.AreEqual(expectedCash, player.Cash);
        }
        public void TestSuccessfulPayRent(string args, BoardSpace.SpaceKeys space, int defaultCash, int expectedCash)
        {
            CreateGame(args);

            IPlayer player = game.Players.First();
            IPlayer ownerPlayer = game.Players.Last();

            player.Cash = defaultCash;
            ownerPlayer.Cash = defaultCash;

            RealEstateSpace realEstateSpace = (RealEstateSpace)game.Board.SpaceAt(space);
            realEstateSpace.Owner = ownerPlayer;

            game.PayRent(player, realEstateSpace);

            Assert.AreEqual(expectedCash, player.Cash);
            Assert.AreEqual(defaultCash + realEstateSpace.Rent, ownerPlayer.Cash);
        }
        public void TestUnableToPayRent(string args, BoardSpace.SpaceKeys space, int defaultCash)
        {
            CreateGame(args);

            IPlayer player = game.Players.First();
            IPlayer ownerPlayer = game.Players.Last();

            player.Cash = defaultCash;
            ownerPlayer.Cash = defaultCash;

            RealEstateSpace realEstateSpace = (RealEstateSpace)game.Board.SpaceAt(space);
            realEstateSpace.Owner = ownerPlayer;

            game.PayRent(player, realEstateSpace);

            Assert.AreEqual(0, player.Cash);
        }
        public void TestLandingOnPropertyIOwn(string args, BoardSpace.SpaceKeys space, int defaultCash)
        {
            CreateGame(args);

            IPlayer player = game.Players.First();

            player.Cash = defaultCash;

            RealEstateSpace realEstateSpace = (RealEstateSpace)game.Board.SpaceAt(space);

            realEstateSpace.Owner = player;

            game.PurchaseCurrentSpace(player, realEstateSpace);

            Assert.AreEqual(defaultCash, player.Cash);
            Assert.AreEqual(player, realEstateSpace.Owner);
        }