public void Toggle_SingleClass() { var game = new MockGame { CurrentGameType = GameType.GT_RANKED, CurrentFormat = Format.Wild }; var secretsManager = new SecretsManager(game, new MockArenaSettings()); var entity = new Entity(0); entity.SetTag(GameTag.SECRET, 1); entity.SetTag(GameTag.CLASS, (int)CardClass.PALADIN); secretsManager.NewSecret(entity); Assert.AreEqual(1, secretsManager.Secrets.Count); var cards = secretsManager.GetSecretList(); Assert.AreEqual(1, cards.Single(x => Paladin.Avenge == x.Id).Count); secretsManager.Toggle(Paladin.Avenge); cards = secretsManager.GetSecretList(); Assert.AreEqual(0, cards.Single(x => Paladin.Avenge == x.Id).Count); secretsManager.Toggle(Paladin.Avenge); cards = secretsManager.GetSecretList(); Assert.AreEqual(1, cards.Single(x => Paladin.Avenge == x.Id).Count); foreach (var id in Paladin.All) { secretsManager.Toggle(id); } cards = secretsManager.GetSecretList(); foreach (var card in cards) { Assert.AreEqual(0, card.Count); } foreach (var id in Paladin.All) { secretsManager.Toggle(id); } cards = secretsManager.GetSecretList(); foreach (var card in cards) { Assert.AreEqual(1, card.Count); } }
public void OnSecretsChangedEvent() { var game = new MockGame { CurrentGameType = GameType.GT_RANKED, CurrentFormat = Format.Wild }; var callbackCount = 0; var secretsManager = new SecretsManager(game, new MockArenaSettings()); secretsManager.OnSecretsChanged += secrets => callbackCount += 1; var entity = new Entity(0); entity.SetTag(GameTag.SECRET, 1); entity.SetTag(GameTag.CLASS, (int)CardClass.PALADIN); secretsManager.NewSecret(entity); Assert.AreEqual(1, callbackCount); secretsManager.Toggle(Paladin.Avenge); Assert.AreEqual(2, callbackCount); secretsManager.Exclude(new List <MultiIdCard> { Paladin.CompetitiveSpirit, Paladin.GetawayKodo }); Assert.AreEqual(3, callbackCount); secretsManager.Toggle(Paladin.Avenge); Assert.AreEqual(4, callbackCount); secretsManager.RemoveSecret(entity); Assert.AreEqual(5, callbackCount); secretsManager.Reset(); Assert.AreEqual(6, callbackCount); }
public void InvalidClass() { var game = new MockGame { CurrentGameType = GameType.GT_RANKED, CurrentFormat = Format.Wild }; var secretsManager = new SecretsManager(game, new MockArenaSettings()); var entity = new Entity(0); entity.SetTag(GameTag.SECRET, 1); entity.SetTag(GameTag.CLASS, (int)CardClass.PRIEST); secretsManager.NewSecret(entity); Assert.AreEqual(1, secretsManager.Secrets.Count); Assert.AreEqual(0, secretsManager.GetSecretList().Count); secretsManager.Toggle(Paladin.Avenge); Assert.AreEqual(0, secretsManager.GetSecretList().Count); }
public void Toggle_MultiClass() { var game = new MockGame { CurrentGameType = GameType.GT_RANKED, CurrentFormat = Format.Wild }; var secretsManager = new SecretsManager(game, new MockArenaSettings()); var paladinEntity = new Entity(0); paladinEntity.SetTag(GameTag.SECRET, 1); paladinEntity.SetTag(GameTag.CLASS, (int)CardClass.PALADIN); secretsManager.NewSecret(paladinEntity); Assert.AreEqual(1, secretsManager.Secrets.Count); var mageEntity = new Entity(1); mageEntity.SetTag(GameTag.SECRET, 1); mageEntity.SetTag(GameTag.CLASS, (int)CardClass.MAGE); secretsManager.NewSecret(mageEntity); Assert.AreEqual(2, secretsManager.Secrets.Count); var hunterEntity = new Entity(2); hunterEntity.SetTag(GameTag.SECRET, 1); hunterEntity.SetTag(GameTag.CLASS, (int)CardClass.HUNTER); secretsManager.NewSecret(hunterEntity); Assert.AreEqual(3, secretsManager.Secrets.Count); var allSecrets = Paladin.All.Concat(Mage.All).Concat(Hunter.All).ToList(); var cards = secretsManager.GetSecretList(); foreach (var card in cards) { Assert.AreEqual(1, card.Count); } foreach (var id in allSecrets) { secretsManager.Toggle(id); } cards = secretsManager.GetSecretList(); foreach (var card in cards) { Assert.AreEqual(0, card.Count); } foreach (var id in allSecrets) { secretsManager.Toggle(id); } cards = secretsManager.GetSecretList(); foreach (var card in cards) { Assert.AreEqual(1, card.Count); } }