コード例 #1
0
        public void PokemonShouldFaint()
        {
            IPokemon pokemon = PokemonFactory.CreatePokemon <Pikachu>();

            pokemon?.ReceiveDamage((int)pokemon?.TotalHealthPoints);
            Assert.True(pokemon?.HasFainted());
        }
コード例 #2
0
        public void ShouldDealLessOrEqualToTwentyDamage()
        {
            IPokemon attackingPokemon = PokemonFactory.CreatePokemon <Pikachu>();
            IPokemon targetPokemon    = PokemonFactory.CreatePokemon <Onix>();

            TypeEffect effectOfTypeOnTargetPokemon = TypeComparer.CompareElectricType(targetPokemon.Types[0]);

            int totalDamage = TypeDamageCalculator.CalculateDamage(
                attackingPokemon,
                targetPokemon,
                attackingPokemon.Moves[1],
                effectOfTypeOnTargetPokemon
                );

            Assert.True(totalDamage <= 20);

            totalDamage = TypeDamageCalculator.CalculateDamage(
                attackingPokemon,
                targetPokemon,
                attackingPokemon.Moves[2],
                effectOfTypeOnTargetPokemon
                );

            Assert.True(totalDamage <= 20);
        }
コード例 #3
0
        public void CreatePokemon_GivenBadLevel_Returns_CorrectLevel(int level, int id, int expectedLevel)
        {
            Prepare();
            IPokemon pokemon = PokemonFactory.CreatePokemon(level, id);

            Assert.AreEqual(expectedLevel, pokemon.Level);
        }
コード例 #4
0
        public void ShouldMoreThanTwentyButLessThanFiftyDamagePoints()
        {
            IPokemon attackingPokemon = PokemonFactory.CreatePokemon <Gengar>();
            IPokemon targetPokemon    = PokemonFactory.CreatePokemon <Pidgeot>();

            TypeEffect effectOfTypeOnTargetPokemon = TypeComparer.CompareGhostType(targetPokemon.Types[0]);

            int totalDamage = TypeDamageCalculator.CalculateDamage(
                attackingPokemon,
                targetPokemon,
                attackingPokemon.Moves[2],
                effectOfTypeOnTargetPokemon
                );

            Assert.True(totalDamage >= 20 && totalDamage < 50);

            totalDamage = TypeDamageCalculator.CalculateDamage(
                attackingPokemon,
                targetPokemon,
                attackingPokemon.Moves[1],
                effectOfTypeOnTargetPokemon
                );

            Assert.True(totalDamage >= 20 && totalDamage < 50);
        }
コード例 #5
0
        public void GhostTypePokemonShouldTakeDamageFromSpecialAttack()
        {
            IPokemon ghostTypePokemon = PokemonFactory.CreatePokemon <Gengar>();
            IMove    move             = new ShadowBall();

            Assert.False(TypeComparer.PokemonTypeDoesNotMakeContactWithMove(ghostTypePokemon?.Types, move));
        }
コード例 #6
0
        public void GhostTypePokemonShouldNotTakeDamageFromPhysicalAttack()
        {
            IPokemon ghostTypePokemon = PokemonFactory.CreatePokemon <Gengar>();
            IMove    move             = new Tackle();

            Assert.True(TypeComparer.PokemonTypeDoesNotMakeContactWithMove(ghostTypePokemon?.Types, move));
        }
コード例 #7
0
        public void CreatePokemon_GivenIdAndLevel_ReturnsHealthyPokemon(int level, int id)
        {
            Prepare();
            IPokemon pokemon = PokemonFactory.CreatePokemon(level, id);

            Assert.AreEqual(pokemon.HPCurrent, pokemon.HPMax);
        }
コード例 #8
0
        public void PokemonShouldReceiveDamage()
        {
            IPokemon pokemon = PokemonFactory.CreatePokemon <Eevee>();

            pokemon?.ReceiveDamage(10);
            Assert.True(pokemon?.CurrentHealthPoints < pokemon.TotalHealthPoints);
        }
コード例 #9
0
        public void CreatePokemon_GivenID_Returns_CorrectName(int level, int id, string expectedResult)
        {
            Prepare();
            IPokemon pokemon = PokemonFactory.CreatePokemon(level, id);

            Assert.AreEqual(expectedResult, pokemon.Name);
            Assert.AreEqual(level, pokemon.Level);
        }
コード例 #10
0
 public void InitializeTrainerTeam()
 {
     PokemonTeam = new List <TrainerPokemon>
     {
         new TrainerPokemon(PokemonFactory.CreatePokemon <Onix>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Machamp>())
     };
 }
コード例 #11
0
ファイル: Stats_UnitTests.cs プロジェクト: svCcare/PokemonV2
        public void CreatePokemon_GivenIdAndLevel_ReturnsDefaultStatModifierStages(int level, int id)
        {
            IPokemon pokemon = PokemonFactory.CreatePokemon(level, id);

            for (int i = 0; i < pokemon.StatModifierStages.Length; i++)
            {
                Assert.AreEqual(pokemon.StatModifierStages[i], 0);
            }
        }
コード例 #12
0
 public void InitializeTrainerTeam()
 {
     PokemonTeam = new List <TrainerPokemon>
     {
         new TrainerPokemon(PokemonFactory.CreatePokemon <Gyarados>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Arcanine>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Exeggutor>())
     };
 }
コード例 #13
0
 public void InitializeTrainerTeam()
 {
     PokemonTeam = new List <TrainerPokemon>
     {
         new TrainerPokemon(PokemonFactory.CreatePokemon <Hypno>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Alakazam>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Gengar>()),
     };
 }
コード例 #14
0
        public void ItemShouldNotHealPokemonWithFullHP()
        {
            IPokemon onix = PokemonFactory.CreatePokemon <Onix>();

            bool pokemonIsEligibleForPotionUse = (bool)_player?.Items
                                                 .ElementAt(POTION_INDEX_IN_TRAINER_INVENTORY).Value[POTION_INDEX_IN_TRAINER_INVENTORY]
                                                 .TryToUseItemOnPokemon(onix);

            Assert.False(pokemonIsEligibleForPotionUse);
        }
コード例 #15
0
        public void CreatePokemon_GivenIdAndLevel_ReturnsPokemonWithoutSpecialStatus(int level, int id, bool expectedResult)
        {
            Prepare();
            IPokemon pokemon = PokemonFactory.CreatePokemon(level, id);

            Assert.AreEqual(expectedResult, pokemon.IsFlinched);
            Assert.AreEqual(expectedResult, pokemon.IsConfused);
            Assert.AreEqual(expectedResult, pokemon.IsEnergyFocused);
            Assert.AreEqual(expectedResult, pokemon.Condition != 0);
        }
コード例 #16
0
        public void ItemShouldNotHealPokemonMoreThanItsHealthPointsProperty(int damageTaken)
        {
            IPokemon onix = PokemonFactory.CreatePokemon <Onix>();

            onix.CurrentHealthPoints -= damageTaken;

            _player?.Items
            .ElementAt(POTION_INDEX_IN_TRAINER_INVENTORY).Value[POTION_INDEX_IN_TRAINER_INVENTORY]
            .TryToUseItemOnPokemon(onix);
            Assert.True(onix.CurrentHealthPoints == onix.TotalHealthPoints);
        }
コード例 #17
0
        public object Clone()
        {
            IPokemon pokemon = PokemonFactory.CreatePokemon();

            foreach (PropertyInfo property in pokemon.GetType().GetProperties())
            {
                property.SetValue(pokemon, property.GetValue(this, null), null);
            }
            pokemon.ResetStats();
            return(pokemon);
        }
コード例 #18
0
 public void InitializeTrainerTeam()
 {
     PokemonTeam = new List <TrainerPokemon>
     {
         new TrainerPokemon(PokemonFactory.CreatePokemon <Pikachu>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Espeon>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Blastoise>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Charizard>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Lapras>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Venusaur>())
     };
 }
コード例 #19
0
        public void ItemShouldHealPokemon(int damageTaken)
        {
            IPokemon onix = PokemonFactory.CreatePokemon <Onix>();

            onix.CurrentHealthPoints -= damageTaken;

            bool pokemonIsEligibleForPotionUse = (bool)_player?.Items
                                                 .ElementAt(POTION_INDEX_IN_TRAINER_INVENTORY).Value[POTION_INDEX_IN_TRAINER_INVENTORY]
                                                 .TryToUseItemOnPokemon(onix);

            Assert.True(pokemonIsEligibleForPotionUse);
        }
コード例 #20
0
 public void InitializeTrainerTeam()
 {
     PokemonTeam = new List <TrainerPokemon>
     {
         new TrainerPokemon(PokemonFactory.CreatePokemon <Gyarados>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Dragonite>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Dragonite>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Dragonite>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Aerodactyl>()),
         new TrainerPokemon(PokemonFactory.CreatePokemon <Charizard>())
     };
 }
コード例 #21
0
ファイル: Stats_UnitTests.cs プロジェクト: svCcare/PokemonV2
        public void PokemonStatModifierStages_CannotGoBelowMinusSix(int level, int id, int changeValueBy, int expectedResult)
        {
            IPokemon pokemon = PokemonFactory.CreatePokemon(level, id);

            for (int i = 0; i < pokemon.StatModifierStages.Length; i++)
            {
                //StatsChanger.ChangeTempPokemonStats(pokemon, i, changeValueBy);
            }

            for (int i = 0; i < pokemon.StatModifierStages.Length; i++)
            {
                Assert.AreEqual(expectedResult, pokemon.StatModifierStages[i]);
            }
        }
コード例 #22
0
        public void ShouldDealMoreThanFiftyDamagePoints()
        {
            IPokemon attackingPokemon = PokemonFactory.CreatePokemon <Venusaur>();
            IPokemon targetPokemon    = PokemonFactory.CreatePokemon <Golem>();

            TypeEffect effectOfTypeOnTargetPokemon = TypeComparer.CompareGrassType(targetPokemon.Types[0]);

            int totalDamage = TypeDamageCalculator.CalculateDamage(
                attackingPokemon,
                targetPokemon,
                attackingPokemon.Moves[3],
                effectOfTypeOnTargetPokemon
                );

            Assert.True(totalDamage > 50);
        }
コード例 #23
0
 public void PikachuCreationShouldNotReturnNull()
 => Assert.NotNull(PokemonFactory.CreatePokemon <Pikachu>());
コード例 #24
0
        public void CreatePokemon_NoParameters_EmptyPokemon()
        {
            IPokemon pokemon = PokemonFactory.CreatePokemon();

            Assert.AreEqual(pokemon.ID, 0);
        }
コード例 #25
0
 public void EeveeCreationShouldNotReturnNull()
 => Assert.NotNull(PokemonFactory.CreatePokemon <Eevee>());
コード例 #26
0
        public void CreatePokemon_()
        {
            IPokemon pokemon = PokemonFactory.CreatePokemon();

            Assert.AreEqual(pokemon.Attacks.Count(), 0);
        }