PkmnLib/tests/TestLibrary/TestLibrary.hpp

50 lines
1.6 KiB
C++
Raw Normal View History

2019-12-29 14:29:52 +00:00
#ifndef PKMNLIB_TESTLIBRARY_HPP
#define PKMNLIB_TESTLIBRARY_HPP
#include "../../src/Library/PokemonLibrary.hpp"
class TestLibrary {
private:
static PkmnLib::Library::PokemonLibrary* _library;
public:
static PkmnLib::Library::PokemonLibrary* GetLibrary() {
if (_library == nullptr) {
_library = BuildLibrary();
}
return _library;
}
static PkmnLib::Library::PokemonLibrary* BuildLibrary() {
return new PkmnLib::Library::PokemonLibrary(CreatureLib::Library::LibrarySettings(100, 4),
BuildSpeciesLibrary(), BuildAttackLibrary(), BuildItemLibrary(),
BuildGrowthRateLibrary(), BuildTypeLibrary());
}
static PkmnLib::Library::SpeciesLibrary* BuildSpeciesLibrary() {
auto lib = new PkmnLib::Library::SpeciesLibrary();
return lib;
}
static CreatureLib::Library::AttackLibrary* BuildAttackLibrary() {
auto lib = new CreatureLib::Library::AttackLibrary();
return lib;
}
static CreatureLib::Library::ItemLibrary* BuildItemLibrary() {
auto lib = new CreatureLib::Library::ItemLibrary();
return lib;
}
static CreatureLib::Library::GrowthRateLibrary* BuildGrowthRateLibrary() {
auto lib = new CreatureLib::Library::GrowthRateLibrary();
return lib;
}
static CreatureLib::Library::TypeLibrary* BuildTypeLibrary() {
auto lib = new CreatureLib::Library::TypeLibrary();
return lib;
}
};
#endif // PKMNLIB_TESTLIBRARY_HPP