@@ -12,6 +12,7 @@ public void FieldsCanBeSet() {
1212 var reader = new BufferedReader (
1313 "= {" +
1414 "\t country=69" +
15+ "\t home_country=68" +
1516 "\t culture=\" paradoxian\" " +
1617 "\t religion=\" orthodox\" " +
1718 "\t female=yes" +
@@ -34,6 +35,7 @@ public void FieldsCanBeSet() {
3435 "\t dna=\" paradoxianDna\" " +
3536 "\t age=56\n " +
3637 "\t province=69" +
38+ "\t prisoner_home=68" +
3739 "}"
3840 ) ;
3941 var character = ImperatorToCK3 . Imperator . Characters . Character . Parse ( reader , "42" , genesDB ) ;
@@ -47,12 +49,22 @@ public void FieldsCanBeSet() {
4749 Assert . Equal ( ( ulong ) 42 , character . Id ) ;
4850
4951 Assert . Null ( character . Country ) ; // we have a country id, but no linked country yet
50- var countriesReader = new BufferedReader ( "={ 69={} }" ) ;
52+ var countriesReader = new BufferedReader ( "={ 69={} 68={} }" ) ;
5153 var countries = new ImperatorToCK3 . Imperator . Countries . Countries ( countriesReader ) ;
5254 character . LinkCountry ( countries ) ;
5355 Assert . NotNull ( character . Country ) ;
5456 Assert . Equal ( ( ulong ) 69 , character . Country . Id ) ;
5557
58+ Assert . Null ( character . HomeCountry ) ; // we have a home country id, but no linked home country yet
59+ character . LinkHomeCountry ( countries ) ;
60+ Assert . NotNull ( character . HomeCountry ) ;
61+ Assert . Equal ( ( ulong ) 68 , character . HomeCountry . Id ) ;
62+
63+ Assert . Null ( character . PrisonerHome ) ; // we have a prisoner home id, but no linked prisoner home yet
64+ character . LinkPrisonerHome ( countries ) ;
65+ Assert . NotNull ( character . PrisonerHome ) ;
66+ Assert . Equal ( ( ulong ) 68 , character . PrisonerHome . Id ) ;
67+
5668 Assert . Equal ( "paradoxian" , character . Culture ) ;
5769 Assert . Equal ( "orthodox" , character . Religion ) ;
5870 Assert . True ( character . Female ) ;
@@ -264,5 +276,17 @@ public void IgnoredTokensAreSaved() {
264276 } ;
265277 Assert . True ( ImperatorToCK3 . Imperator . Characters . Character . IgnoredTokens . SetEquals ( expectedIgnoredTokens ) ) ;
266278 }
279+
280+ [ Fact ]
281+ public void CountryIsNotLinkedWithoutParsedId ( ) {
282+ var character = new ImperatorToCK3 . Imperator . Characters . Character ( 1 ) ;
283+ var countries = new ImperatorToCK3 . Imperator . Countries . Countries ( ) ;
284+ character . LinkCountry ( countries ) ;
285+ character . LinkHomeCountry ( countries ) ;
286+ character . LinkPrisonerHome ( countries ) ;
287+ Assert . Null ( character . Country ) ;
288+ Assert . Null ( character . HomeCountry ) ;
289+ Assert . Null ( character . PrisonerHome ) ;
290+ }
267291 }
268292}
0 commit comments