public void BrokenLinkAttemptThrowsWarning() { var reader = new BufferedReader( "={\n" + "42={ family = 8 }\n" + "44={ minor_family = 10 }\n" + // no pop 10 "}\n" ); var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader); var reader2 = new BufferedReader( "={\n" + "8={key=\"Cornelli\" prestige=0 member={ 4479 4480}}\n" + "9={key=\"minor_bmb\" prestige=0 minor_family=yes member={ 4479 4480}}\n" + "}\n" ); var families = new ImperatorToCK3.Imperator.Families.FamilyCollection(); families.LoadFamilies(reader2); var output = new StringWriter(); Console.SetOut(output); countries.LinkFamilies(families); Assert.Contains("[DEBUG] Families without definition: 10", output.ToString()); }
public void CountriesDefaultToEmpty() { var reader = new BufferedReader( "= { }" ); var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader); Assert.Empty(countries); }
public void CountriesCanBeLoaded() { var reader = new BufferedReader( "= {\n" + "42={}\n" + "43={}\n" + "}" ); var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader); Assert.Collection(countries, item => Assert.Equal((ulong)42, item.Id), item => Assert.Equal((ulong)43, item.Id)); }
public void PreImperatorTermIsCorrectlyConverted() { var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(); var countryReader = new BufferedReader("= { tag = SPA capital=420 }"); var sparta = ImperatorToCK3.Imperator.Countries.Country.Parse(countryReader, 69); countries.Add(sparta); var preImpTermReader = new BufferedReader("= { name=\"Alexander\"" + " birth_date=200.1.1 death_date=300.1.1 throne_date=250.1.1" + " nickname=stupid religion=hellenic culture=spartan" + " country=SPA }" ); var impRulerTerm = new ImperatorToCK3.Imperator.Countries.RulerTerm(preImpTermReader, countries); var govReader = new BufferedReader("link = {imp=dictatorship ck3=feudal_government }"); var govMapper = new GovernmentMapper(govReader); var religionMapper = new ReligionMapper(new BufferedReader("link={imp=hellenic ck3=hellenic}")); religionMapper.LoadRegionMappers( new ImperatorRegionMapper(), new CK3RegionMapper() ); var ck3Characters = new ImperatorToCK3.CK3.Characters.CharacterCollection(); var ck3RulerTerm = new RulerTerm(impRulerTerm, ck3Characters, govMapper, new LocDB("english"), religionMapper, new CultureMapper(new BufferedReader("link = { imp=spartan ck3=greek }")), new NicknameMapper("TestFiles/configurables/nickname_map.txt"), new ProvinceMapper() ); Assert.Equal("imperatorRegnalSPAAlexander504.1.1BC", ck3RulerTerm.CharacterId); Assert.Equal(new Date(250, 1, 1, AUC: true), ck3RulerTerm.StartDate); var ruler = ck3RulerTerm.PreImperatorRuler; Assert.NotNull(ruler); Assert.Equal("Alexander", ruler.Name); var ck3Character = ck3Characters["imperatorRegnalSPAAlexander504.1.1BC"]; Assert.Equal(new Date(0, 1, 1), ck3Character.BirthDate); // BC dates are not supported by CK3 Assert.Equal(new Date(0, 1, 30), ck3Character.DeathDate); // BC dates are not supported by CK3 Assert.Equal("Alexander", ck3Character.Name); Assert.Equal("dull", ck3Character.Nickname); Assert.Equal("greek", ck3Character.Culture); Assert.Equal("hellenic", ck3Character.Religion); }
public void FamilyCanBeLinked() { var reader = new BufferedReader( "={42={family=8}}\n" ); var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader); var reader2 = new BufferedReader( "8={key=\"Cornelli\" prestige=2 member={ 4479 4480}}\n" ); var families = new ImperatorToCK3.Imperator.Families.FamilyCollection(); families.LoadFamilies(reader2); countries.LinkFamilies(families); var country = countries[42]; var family = country.Families[8]; Assert.Equal(2, family.Prestige); }
public void MultipleFamiliesCanBeLinked() { var reader = new BufferedReader( "={\n" + "43={ family = 10}\n" + "42={family=8}\n" + "44={minor_family= 9}\n" + "}\n" ); var countries = new ImperatorToCK3.Imperator.Countries.CountryCollection(reader); var reader2 = new BufferedReader( "={\n" + "8={key=\"Cornelli\" prestige=2 member={ 4479 4480} }\n" + "9={key=\"minor_bmb\" prestige=69 minor_family=yes member={ 4479 4480} }\n" + "10={key=\"minor_rom\" prestige=7 minor_family=yes member={ 69 420} }\n" + "}\n" ); var families = new ImperatorToCK3.Imperator.Families.FamilyCollection(); families.LoadFamilies(reader2); countries.LinkFamilies(families); var country = countries[42]; var family = country.Families[8]; var country2 = countries[43]; var family2 = country2.Families[10]; var country3 = countries[44]; var family3 = country3.Families[9]; Assert.Equal(2, family.Prestige); Assert.Equal(7, family2.Prestige); Assert.Equal(69, family3.Prestige); }