Exemplo n.º 1
0
        public void Start_VerifyStateStartCalled()
        {
            var gameState = new MockGameState();
            var game      = BuildGame(gameState: gameState);

            game.Start();

            gameState.VerifyStartCalled();
        }
Exemplo n.º 2
0
        public void Apply_NoEntityId_NoCreationTag()
        {
            var tc   = new TagChange(new TagChangeData(GameTag.HEALTH, 5, false, null, null));
            var game = new MockGameState();

            tc.Apply(game);
            Assert.IsNull(tc.EntityId);
            Assert.IsNull(tc.PreviousValue);
        }
Exemplo n.º 3
0
        public void CheckForWin_VerifyStateCheckForWinCalled()
        {
            var gameState = new MockGameState();
            var game      = BuildGame(gameState: gameState);

            game.CheckForWin();

            gameState.VerifyCheckForWinCalled();
        }
Exemplo n.º 4
0
        public void SwitchPlayer_VerifyStateSwitchPlayerCalled()
        {
            var gameState = new MockGameState();
            var game      = BuildGame(gameState: gameState);

            game.SwitchPlayer();

            gameState.VerifySwitchPlayerCalled();
        }
Exemplo n.º 5
0
        public void Play_VerifyStatePlayCalled()
        {
            var gameState = new MockGameState();
            var game      = BuildGame(gameState: gameState);

            game.Play();

            gameState.VerifyPlayCalled();
        }
Exemplo n.º 6
0
        public void End_VerifyStateEndCalled()
        {
            var gameState = new MockGameState();
            var game      = BuildGame(gameState: gameState);

            game.End();

            gameState.VerifyEndCalled();
        }
Exemplo n.º 7
0
        public void Over_VerifyStateOverCalled()
        {
            var gameState = new MockGameState();
            var game      = BuildGame(gameState: gameState);

            game.Over();

            gameState.VerifyOverCalled();
        }
Exemplo n.º 8
0
        public void NewGame_VerifyStatePlayAgainCalled()
        {
            var gameState = new MockGameState();
            var game      = BuildGame(gameState: gameState);

            game.PlayAgain();

            gameState.VerifyPlayAgainCalled();
        }
Exemplo n.º 9
0
        public void Apply_InvalidEntity()
        {
            var gs = new MockGameState();

            gs.Entities.Add(1, new Entity(1, "CARD_ID"));
            var mod = new ChangeEntity(new EntityData(2, "NAME", "CARD_ID2", Zone.DECK));

            mod.Apply(gs);
            Assert.AreEqual("CARD_ID", gs.Entities[1].CardId);
        }
Exemplo n.º 10
0
        public void Apply_InvalidEntity()
        {
            var entity = new EntityData(2, "NAME", "CARD_ID", Zone.DECK);
            var game   = new MockGameState();

            game.Entities.Add(1, new Entity(1, "CARD_ID"));
            var mod = new HideEntity(entity);

            mod.Apply(game);
            Assert.IsFalse(game.Entities[1].Info.Hidden);
        }
Exemplo n.º 11
0
        public void Apply_ValidEntity()
        {
            var tc   = new TagChange(new TagChangeData(GameTag.HEALTH, 5, false, 1, null));
            var game = new MockGameState();

            game.Entities.Add(1, new Entity(1, "CARD_ID"));

            tc.Apply(game);
            Assert.AreEqual(0, tc.PreviousValue);
            Assert.AreEqual(tc.Value, game.Entities[tc.EntityId.Value].Tags[tc.Tag]);
        }
Exemplo n.º 12
0
        public void Apply_InvalidEntity()
        {
            var tc     = new TagChange(new TagChangeData(GameTag.HEALTH, 5, false, 2, null));
            var game   = new MockGameState();
            var entity = new Entity(1, "CARD_ID");

            game.Entities.Add(1, entity);

            tc.Apply(game);
            Assert.IsNull(tc.PreviousValue);
        }
Exemplo n.º 13
0
        public void Apply_Entity_MulliganDone()
        {
            var game = new MockGameState {
                IsMulliganDone = true, SetupComplete = true
            };
            var data = new EntityData(1, "NAME", "CARD_ID", Zone.SETASIDE);
            var mod  = new FullEntity(data, new MockBlockData());

            mod.Apply(game);
            var entity = game.Entities[data.Id];

            Assert.IsTrue(entity.IsCreated);
        }
Exemplo n.º 14
0
        public void Normal()
        {
            GameState g    = MockGameState.GetMockState();
            int       cost = g.ResourceMarket.GetCost(ResourceType.Coal);

            string    preGameStateString = JsonConvert.SerializeObject(g);
            GameState preGameState       = JsonConvert.DeserializeObject <GameState>(preGameStateString);

            Game.BuyResource(preGameState.Players.First.Value, ResourceType.Coal, 1);
            GameState postGameState = MockGameState.GetMockState();

            Assert.Equal(preGameState.Players.First.Value.Money, postGameState.Players.First.Value.Money + cost);
        }
Exemplo n.º 15
0
        public void Apply_ValidEntity_RevealCard()
        {
            var entity = new EntityData(1, "NAME", "CARD_ID", Zone.DECK);
            var game   = new MockGameState();

            game.Entities.Add(1, new Entity(1, ""));
            var mod = new ShowEntity(entity, new MockBlockData {
                Type = BlockType.REVEAL_CARD
            });

            mod.Apply(game);
            Assert.IsTrue(game.Entities[entity.Id].Info.JoustReveal);
        }
Exemplo n.º 16
0
        public void NoMoney()
        {
            GameState g = MockGameState.GetMockState();

            g.Players.First.Value.Money = 0;
            string    preGameStateString = JsonConvert.SerializeObject(g);
            GameState preGameState       = JsonConvert.DeserializeObject <GameState>(preGameStateString);

            Game.BuyResource(preGameState.Players.First.Value, ResourceType.Coal, 1);
            GameState postGameState = MockGameState.GetMockState();

            Assert.Equal(preGameState.Players.First.Value.Money, postGameState.Players.First.Value.Money);
            Assert.Equal(JsonConvert.SerializeObject(preGameState.ResourceMarket), JsonConvert.SerializeObject(postGameState.ResourceMarket));
        }
Exemplo n.º 17
0
        public void Apply_ValidEntity_ControllerChange()
        {
            var tc   = new TagChange(new TagChangeData(GameTag.CONTROLLER, 1, false, 1, null));
            var game = new MockGameState();

            game.Entities.Add(1, new Entity(1, "CARD_ID"));

            tc.Apply(game);
            Assert.AreEqual(tc.Value, game.Entities[tc.EntityId.Value].Info.OriginalController);

            var tc2 = new TagChange(new TagChangeData(GameTag.CONTROLLER, 2, false, 1, null));

            tc2.Apply(game);
            Assert.AreEqual(tc.Value, game.Entities[tc.EntityId.Value].Info.OriginalController);
        }
Exemplo n.º 18
0
        public void Apply_InvalidEntity()
        {
            var entityData = new EntityData(2, "NAME", "CARD_ID", Zone.DECK);
            var game       = new MockGameState();
            var entity     = new Entity(1, "");

            entity.Info.Hidden = true;
            game.Entities.Add(1, entity);
            var mod = new ShowEntity(entityData, new MockBlockData());

            mod.Apply(game);
            Assert.AreNotEqual(entityData.CardId, game.Entities[1].CardId);
            Assert.IsTrue(game.Entities[1].Info.Hidden);
            Assert.AreEqual(1, game.Entities.Count);
        }
Exemplo n.º 19
0
        public void NoResources()
        {
            for (int i = 0; i <= (int)ResourceType.Nuclear; i++)
            {
                GameState g = MockGameState.GetMockState();
                g.ResourceMarket.Resources.AvailableResources[i] = 0;
                string    preGameStateString = JsonConvert.SerializeObject(g);
                GameState preGameState       = JsonConvert.DeserializeObject <GameState>(preGameStateString);

                Game.BuyResource(preGameState.Players.First.Value, (ResourceType)i, 1);
                GameState postGameState = MockGameState.GetMockState();
                Assert.Equal(preGameState.Players.First.Value.Money, postGameState.Players.First.Value.Money);
                Assert.Equal(JsonConvert.SerializeObject(preGameState.ResourceMarket), JsonConvert.SerializeObject(postGameState.ResourceMarket)); Assert.Equal(JsonConvert.SerializeObject(preGameState.ResourceMarket), JsonConvert.SerializeObject(postGameState.ResourceMarket));
            }
        }
Exemplo n.º 20
0
        public void Apply_ValidEntity()
        {
            var entityData = new EntityData(1, "NAME", "CARD_ID", Zone.DECK);
            var game       = new MockGameState();
            var entity     = new Entity(1, "");

            entity.Info.Hidden = true;
            game.Entities.Add(1, entity);
            var mod = new ShowEntity(entityData, new MockBlockData());

            mod.Apply(game);
            Assert.IsFalse(game.Entities[entityData.Id].Info.Hidden);
            Assert.IsFalse(game.Entities[entityData.Id].Info.JoustReveal);
            Assert.AreEqual(entityData.CardId, game.Entities[entityData.Id].CardId);
        }
Exemplo n.º 21
0
        public void Apply_ValidEntity_ZoneChange()
        {
            var tc   = new TagChange(new TagChangeData(GameTag.ZONE, (int)Zone.DECK, false, 1, null));
            var game = new MockGameState {
                CurrentTurn = 1
            };

            game.Entities.Add(1, new Entity(1, "CARD_ID"));

            tc.Apply(game);
            Assert.AreEqual((Zone?)tc.Value, game.Entities[tc.EntityId.Value].Info.OriginalZone);
            Assert.AreEqual(Zone.INVALID, game.Entities[tc.EntityId.Value].Info.PreviousZone);
            Assert.AreEqual(1, game.Entities[tc.EntityId.Value].Info.LastZoneChange);

            var tc2 = new TagChange(new TagChangeData(GameTag.ZONE, (int)Zone.HAND, false, 1, null));

            tc2.Apply(game);
            Assert.AreEqual((Zone?)tc.Value, game.Entities[tc.EntityId.Value].Info.OriginalZone);
        }
Exemplo n.º 22
0
        public void TestFullGame()
        {
            var gameState = MockGameState.GetMockState();
            var cards     = MockGameState.Cards.ToList();

            var red    = gameState.Players.ToList()[0];
            var blue   = gameState.Players.ToList()[1];
            var green  = gameState.Players.ToList()[2];
            var yellow = gameState.Players.ToList()[3];
            var purple = gameState.Players.ToList()[4];
            var white  = gameState.Players.ToList()[5];

            var actualPath   = "D:\\Workspace\\PowerGrid\\PowerGrid.Tests\\data\\actual\\";
            var expectedPath = "D:\\Workspace\\PowerGrid\\PowerGrid.Tests\\data\\expected\\";

            Setup(gameState, cards, red, blue, green, yellow, purple, white);
            Round1(gameState, cards, red, blue, green, yellow, purple, white);
            Game.ExportGameStateToJsonFile($"{actualPath}endofround1.json");
            Assert.True(File.ReadLines($"{actualPath}endofround1.json").SequenceEqual(File.ReadLines($"{expectedPath}endofround1.json")));
            Round2(gameState, cards, red, blue, green, yellow, purple, white);
            Game.ExportGameStateToJsonFile($"{actualPath}endofround2.json");
            Assert.True(File.ReadLines($"{actualPath}endofround2.json").SequenceEqual(File.ReadLines($"{expectedPath}endofround2.json")));
            Round3(gameState, cards, red, blue, green, yellow, purple, white);
            Game.ExportGameStateToJsonFile($"{actualPath}endofround3.json");
            Assert.True(File.ReadLines($"{actualPath}endofround3.json").SequenceEqual(File.ReadLines($"{expectedPath}endofround3.json")));
            Round4(gameState, cards, red, blue, green, yellow, purple, white);
            Game.ExportGameStateToJsonFile($"{actualPath}endofround4.json");
            Assert.True(File.ReadLines($"{actualPath}endofround4.json").SequenceEqual(File.ReadLines($"{expectedPath}endofround4.json")));
            Round5(gameState, cards, red, blue, green, yellow, purple, white);
            Game.ExportGameStateToJsonFile($"{actualPath}endofround5.json");
            Assert.True(File.ReadLines($"{actualPath}endofround5.json").SequenceEqual(File.ReadLines($"{expectedPath}endofround5.json")));
            Round6(gameState, cards, red, blue, green, yellow, purple, white);
            Game.ExportGameStateToJsonFile($"{actualPath}endofround6.json");
            Assert.True(File.ReadLines($"{actualPath}endofround6.json").SequenceEqual(File.ReadLines($"{expectedPath}endofround6.json")));
            Round7(gameState, cards, red, blue, green, yellow, purple, white);
            Game.ExportGameStateToJsonFile($"{actualPath}endofround7.json");
            Assert.True(File.ReadLines($"{actualPath}endofround7.json").SequenceEqual(File.ReadLines($"{expectedPath}endofround7.json")));
        }
Exemplo n.º 23
0
        public void BuyAllResources()
        {
            GameState g = MockGameState.GetMockState();

            g.Players.First.Value.Money = int.MaxValue; // "infinite money"

            for (int i = 0; i <= (int)ResourceType.Nuclear; i++)
            {
                int maxSupply = g.ResourceMarket.GetMaxSuppy((ResourceType)i);
                g.ResourceMarket.Resources.AvailableResources[i] = maxSupply;
                for (int j = 0; j < maxSupply; j++)
                {
                    string    preGameStateString = JsonConvert.SerializeObject(g);
                    GameState preGameState       = JsonConvert.DeserializeObject <GameState>(preGameStateString);
                    int       cost = g.ResourceMarket.GetCost((ResourceType)i);

                    Game.BuyResource(preGameState.Players.First.Value, (ResourceType)i, 1);
                    GameState postGameState = MockGameState.GetMockState();
                    Assert.Equal(preGameState.Players.First.Value.Money, postGameState.Players.First.Value.Money + cost);
                    Assert.Equal(preGameState.ResourceMarket.Resources.AvailableResources[i], postGameState.ResourceMarket.Resources.AvailableResources[i] + 1);
                }
            }
        }
Exemplo n.º 24
0
 public void Initialize()
 {
     _game = new MockGameState();
 }
Exemplo n.º 25
0
 public IEnumerable <Card> GetCard()
 {
     return(MockGameState.GetMockCards());
 }
Exemplo n.º 26
0
 public void Initialize()
 {
     _mod = new MockEntityModifier(new EntityData(1, "NAME", "CARD_ID", Zone.DECK));
     _gs  = new MockGameState();
 }
Exemplo n.º 27
0
 public IEnumerable <Player> GetPlayers()
 {
     return(MockGameState.GetMockPlayers());
 }