115 lines
4.5 KiB
C#
115 lines
4.5 KiB
C#
using PkmnLib.Dynamic.Models;
|
|
using PkmnLib.Dynamic.Models.Serialized;
|
|
using PkmnLib.Static;
|
|
using PkmnLib.Static.Species;
|
|
using PkmnLib.Tests.Integration;
|
|
|
|
namespace PkmnLib.Tests.Dynamic;
|
|
|
|
public class SerializationTests
|
|
{
|
|
[Test]
|
|
public void SerializePokemon()
|
|
{
|
|
var library = LibraryHelpers.LoadLibrary();
|
|
Assert.That(library.StaticLibrary.Species.TryGet("bulbasaur", out var species));
|
|
|
|
var pokemon = new PokemonImpl(library, species!, species!.GetDefaultForm(), new AbilityIndex()
|
|
{
|
|
Index = 0,
|
|
IsHidden = false,
|
|
}, 10, 1000, Gender.Male, 0, "hardy");
|
|
pokemon.LearnMove("tackle", MoveLearnMethod.LevelUp, 255);
|
|
|
|
var data = pokemon.Serialize();
|
|
Assert.That(data, Is.Not.Null);
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(data.Species, Is.EqualTo("bulbasaur"));
|
|
Assert.That(data.Form, Is.EqualTo("default"));
|
|
Assert.That(data.Ability, Is.EqualTo("overgrow"));
|
|
Assert.That(data.Level, Is.EqualTo(10));
|
|
Assert.That(data.PersonalityValue, Is.EqualTo(1000));
|
|
Assert.That(data.Gender, Is.EqualTo(Gender.Male));
|
|
Assert.That(data.Experience, Is.EqualTo(560));
|
|
Assert.That(data.Coloring, Is.EqualTo(0));
|
|
Assert.That(data.HeldItem, Is.Null);
|
|
Assert.That(data.CurrentHealth, Is.EqualTo(29));
|
|
Assert.That(data.Happiness, Is.EqualTo(70));
|
|
});
|
|
|
|
Assert.That(data.Moves, Has.Length.EqualTo(4));
|
|
Assert.That(data.Moves[0], Is.Not.Null);
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(data.Moves[0]!.MoveName, Is.EqualTo("tackle"));
|
|
Assert.That(data.Moves[0]!.LearnMethod, Is.EqualTo(MoveLearnMethod.LevelUp));
|
|
Assert.That(data.Moves[0]!.CurrentPp, Is.EqualTo(35));
|
|
});
|
|
}
|
|
|
|
[Test]
|
|
public void DeserializePokemon()
|
|
{
|
|
var library = LibraryHelpers.LoadLibrary();
|
|
var data = new SerializedPokemon
|
|
{
|
|
Species = "bulbasaur",
|
|
Form = "default",
|
|
Ability = "overgrow",
|
|
Level = 10,
|
|
Experience = 560,
|
|
PersonalityValue = 1000,
|
|
Gender = Gender.Male,
|
|
Coloring = 0,
|
|
HeldItem = null,
|
|
CurrentHealth = 29,
|
|
Happiness = 70,
|
|
IndividualValues = new IndividualValueStatisticSet(20, 20, 20, 20, 20, 20),
|
|
EffortValues = new EffortValueStatisticSet(0, 0, 0, 0, 0, 0),
|
|
Nature = "hardy",
|
|
Nickname = "foo",
|
|
Moves = new[]
|
|
{
|
|
new SerializedLearnedMove
|
|
{
|
|
MoveName = "tackle",
|
|
LearnMethod = MoveLearnMethod.LevelUp,
|
|
CurrentPp = 23,
|
|
},
|
|
null,
|
|
null,
|
|
null,
|
|
},
|
|
};
|
|
|
|
var pokemon = new PokemonImpl(library, data);
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(pokemon.Species.Name.ToString(), Is.EqualTo("bulbasaur"));
|
|
Assert.That(pokemon.Form.Name.ToString(), Is.EqualTo("default"));
|
|
Assert.That(pokemon.AbilityIndex.Index, Is.EqualTo(0));
|
|
Assert.That(pokemon.Level, Is.EqualTo(10));
|
|
Assert.That(pokemon.Experience, Is.EqualTo(560));
|
|
Assert.That(pokemon.PersonalityValue, Is.EqualTo(1000));
|
|
Assert.That(pokemon.Gender, Is.EqualTo(Gender.Male));
|
|
Assert.That(pokemon.Coloring, Is.EqualTo(0));
|
|
Assert.That(pokemon.HeldItem, Is.Null);
|
|
Assert.That(pokemon.CurrentHealth, Is.EqualTo(29));
|
|
Assert.That(pokemon.Happiness, Is.EqualTo(70));
|
|
Assert.That(pokemon.IndividualValues, Is.EqualTo(new IndividualValueStatisticSet(20, 20, 20, 20, 20, 20)));
|
|
Assert.That(pokemon.EffortValues, Is.EqualTo(new EffortValueStatisticSet(0, 0, 0, 0, 0, 0)));
|
|
Assert.That(pokemon.Nature.Name.ToString(), Is.EqualTo("hardy"));
|
|
Assert.That(pokemon.Nickname, Is.EqualTo("foo"));
|
|
});
|
|
Assert.That(pokemon.Moves, Has.Count.EqualTo(4));
|
|
Assert.That(pokemon.Moves[0], Is.Not.Null);
|
|
Assert.Multiple(() =>
|
|
{
|
|
Assert.That(pokemon.Moves[0]!.MoveData.Name.ToString(), Is.EqualTo("tackle"));
|
|
Assert.That(pokemon.Moves[0]!.LearnMethod, Is.EqualTo(MoveLearnMethod.LevelUp));
|
|
Assert.That(pokemon.Moves[0]!.CurrentPp, Is.EqualTo(23));
|
|
});
|
|
}
|
|
|
|
} |