/**
  * @test
  */
 public function I_can_register_subrace()
 {
     RaceType::registerSelf();
     $testSubrace = TestSubrace::getIt();
     self::assertTrue(RaceType::registerRaceAsSubType($testSubrace));
     $raceType = Type::getType($this->getExpectedTypeName());
     $databaseValue = $raceType->convertToDatabaseValue($testSubrace, $this->getPlatform());
     $expectedDatabaseValue = "{$testSubrace->getRaceCode()}-{$testSubrace->getSubraceCode()}";
     self::assertSame($expectedDatabaseValue, $databaseValue);
     $restoredSubrace = $raceType->convertToPHPValue($expectedDatabaseValue, $this->getPlatform());
     self::assertEquals($testSubrace, $restoredSubrace);
 }
 /**
  * @test
  */
 public function I_can_register_all_the_races_at_once()
 {
     RacesEnumRegistrar::registerAll();
     self::assertTrue(Type::hasType(RaceType::RACE));
     self::assertTrue(RaceType::hasSubTypeEnum(CommonDwarf::class));
     self::assertTrue(RaceType::hasSubTypeEnum(MountainDwarf::class));
     self::assertTrue(RaceType::hasSubTypeEnum(WoodDwarf::class));
     self::assertTrue(RaceType::hasSubTypeEnum(CommonElf::class));
     self::assertTrue(RaceType::hasSubTypeEnum(DarkElf::class));
     self::assertTrue(RaceType::hasSubTypeEnum(GreenElf::class));
     self::assertTrue(RaceType::hasSubTypeEnum(CommonHobbit::class));
     self::assertTrue(RaceType::hasSubTypeEnum(CommonHuman::class));
     self::assertTrue(RaceType::hasSubTypeEnum(Highlander::class));
     self::assertTrue(RaceType::hasSubTypeEnum(CommonKroll::class));
     self::assertTrue(RaceType::hasSubTypeEnum(WildKroll::class));
     self::assertTrue(RaceType::hasSubTypeEnum(CommonOrc::class));
     self::assertTrue(RaceType::hasSubTypeEnum(Goblin::class));
     self::assertTrue(RaceType::hasSubTypeEnum(Skurut::class));
 }
 public static function registerAll()
 {
     RaceType::registerSelf();
     RaceType::registerRaceAsSubType(CommonDwarf::getIt());
     RaceType::registerRaceAsSubType(MountainDwarf::getIt());
     RaceType::registerRaceAsSubType(WoodDwarf::getIt());
     RaceType::registerRaceAsSubType(CommonElf::getIt());
     RaceType::registerRaceAsSubType(DarkElf::getIt());
     RaceType::registerRaceAsSubType(GreenElf::getIt());
     RaceType::registerRaceAsSubType(CommonElf::getIt());
     RaceType::registerRaceAsSubType(DarkElf::getIt());
     RaceType::registerRaceAsSubType(GreenElf::getIt());
     RaceType::registerRaceAsSubType(CommonHobbit::getIt());
     RaceType::registerRaceAsSubType(CommonHuman::getIt());
     RaceType::registerRaceAsSubType(Highlander::getIt());
     RaceType::registerRaceAsSubType(CommonKroll::getIt());
     RaceType::registerRaceAsSubType(WildKroll::getIt());
     RaceType::registerRaceAsSubType(CommonOrc::getIt());
     RaceType::registerRaceAsSubType(Goblin::getIt());
     RaceType::registerRaceAsSubType(Skurut::getIt());
 }