public void Start_VerifyStateStartCalled() { var gameState = new MockGameState(); var game = BuildGame(gameState: gameState); game.Start(); gameState.VerifyStartCalled(); }
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); }
public void CheckForWin_VerifyStateCheckForWinCalled() { var gameState = new MockGameState(); var game = BuildGame(gameState: gameState); game.CheckForWin(); gameState.VerifyCheckForWinCalled(); }
public void SwitchPlayer_VerifyStateSwitchPlayerCalled() { var gameState = new MockGameState(); var game = BuildGame(gameState: gameState); game.SwitchPlayer(); gameState.VerifySwitchPlayerCalled(); }
public void Play_VerifyStatePlayCalled() { var gameState = new MockGameState(); var game = BuildGame(gameState: gameState); game.Play(); gameState.VerifyPlayCalled(); }
public void End_VerifyStateEndCalled() { var gameState = new MockGameState(); var game = BuildGame(gameState: gameState); game.End(); gameState.VerifyEndCalled(); }
public void Over_VerifyStateOverCalled() { var gameState = new MockGameState(); var game = BuildGame(gameState: gameState); game.Over(); gameState.VerifyOverCalled(); }
public void NewGame_VerifyStatePlayAgainCalled() { var gameState = new MockGameState(); var game = BuildGame(gameState: gameState); game.PlayAgain(); gameState.VerifyPlayAgainCalled(); }
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); }
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); }
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]); }
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); }
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); }
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); }
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); }
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)); }
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); }
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); }
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)); } }
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); }
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); }
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"))); }
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); } } }
public void Initialize() { _game = new MockGameState(); }
public IEnumerable <Card> GetCard() { return(MockGameState.GetMockCards()); }
public void Initialize() { _mod = new MockEntityModifier(new EntityData(1, "NAME", "CARD_ID", Zone.DECK)); _gs = new MockGameState(); }
public IEnumerable <Player> GetPlayers() { return(MockGameState.GetMockPlayers()); }