public void StartAFight_ThenAnotherPlayerJoins_ResultsInRaisedHeroStrength_Test() { var quest = QuestFactory.CreateStartedWithMaleHero( out var gameStore, out var gameId, out var playerId, out var sequence); var xena = new Hero(PlayerFactory.CreateFemale("Xena")); var game = quest.GetState(gameId); var hero = game.GetHero(playerId); var heroLevelRaise = LevelMessage.Create(sequence.Next, playerId, 1); var heroBonusRaise = BonusMessage.Create(sequence.Next, playerId, 1); var addXena = PlayerMessage.CreateAdd(sequence.Next, new[] { xena.Player }); var xenaLevelRaise = LevelMessage.Create(sequence.Next, xena.Player.Id, 1); var xenaBonusRaise = BonusMessage.Create(sequence.Next, xena.Player.Id, 1); var startFight = FightStartMessage.Create(sequence.Next, hero.Player.Id, zerschmetterling); var preparation = new GameMessage[] { heroLevelRaise, heroBonusRaise, addXena, xenaLevelRaise, xenaBonusRaise, startFight }; var xenaJoinsFight = FightJoinMessage.Create(sequence.Next, xena.Player.Id); quest.AddMessages(gameId, preparation); game = quest.AddMessage(gameId, xenaJoinsFight); Assert.NotNull(game.Score.Fight); Assert.Equal(2, game.Score.Fight.Heroes.Count); Assert.Equal(6, game.Score.Fight.TotalHeroesScore); }
public void DecreaseBonusWhenGameIsNotStarted_ThrowsException_Test() { // Arrange var quest = QuestFactory.CreateStored(out var gameStore, out var gameId); var decreaseBonusMsg = BonusMessage.Create(1, Guid.NewGuid(), -1); // Act & Assert Assert.Throws <InvalidActionException>(() => quest.AddMessage(gameId, decreaseBonusMsg)); }
public void DecreaseBonusOnUnknownHero_ThrowsException_Test() { // Arrange var quest = QuestFactory.CreateStarted(out var gameStore, out var gameId, out var sequence); var decreaseBonusMsg = BonusMessage.Create(sequence.Next, Guid.NewGuid(), 1); // Act & Assert Assert.Throws <InvalidActionException>(() => quest.AddMessage(gameId, decreaseBonusMsg)); }
public void IncreaseBonusOnHero_ResultsInIncreasedBonus_Test() { // Arrange var quest = QuestFactory.CreateStartedWithMaleHero(out var gameStore, out var gameId, out var playerId, out var sequence); var increaseBonusMsg = BonusMessage.Create(sequence.Next, playerId, 1); // Act var game = quest.AddMessage(gameId, increaseBonusMsg); // Assert Assert.Equal(1, game.Score.Heroes.First().Bonus); }
public void LevelUpHeroThenKillHim_ResultsInBonusReset_Test() { // Arrange var quest = QuestFactory.CreateStartedWithMaleHero( out var gameStore, out var gameId, out var playerId, out var sequence); var bonusMsg = BonusMessage.Create(sequence.Next, playerId, 1); var deathMsg = DeathMessage.Create(sequence.Next, playerId); // Act quest.AddMessage(gameId, bonusMsg); var game = quest.AddMessage(gameId, deathMsg); // Assert var hero = game.GetHero(playerId); Assert.Equal(0, hero.Bonus); }