public void usedWithMetronome_correct_type_attached(int attached, int expected) { var opponentPokemon = new PokemonCard() { Attacks = new ObservableCollection <Attack> { new ExtraForUnusedEnergy() { Damage = 40, MaxExtraDamage = 20, AmountPerEnergy = 10, EnergyType = EnergyTypes.Water, Cost = new ObservableCollection <Energy> { new Energy(EnergyTypes.Water, 3) } } } }; var opponent = new Player { ActivePokemonCard = opponentPokemon }; var attack = new Metronome(); var player = new Player() { ActivePokemonCard = new PokemonCard() { Attacks = new ObservableCollection <Attack> { } } }; for (int i = 0; i < attached; i++) { player.ActivePokemonCard.AttachedEnergy.Add(new EnergyCard() { Amount = 1, EnergyType = EnergyTypes.Water }); } Assert.Equal(expected, attack.GetDamage(player, opponent, new GameField()).NormalDamage); }