1- using commonItems ;
2- using ImperatorToCK3 . CK3 . Titles ;
1+ using ImperatorToCK3 . CK3 . Titles ;
32using ImperatorToCK3 . Mappers . Government ;
43using System . Collections . Generic ;
4+ using System . IO ;
55using Xunit ;
66
77namespace ImperatorToCK3 . UnitTests . Mappers . Government ;
88
9+ [ Collection ( "Sequential" ) ]
10+ [ CollectionDefinition ( "Sequential" , DisableParallelization = true ) ]
911public class GovernmentMapperTests {
1012 [ Fact ]
1113 public void NonMatchGivesNull ( ) {
12- var reader = new BufferedReader ( "link = { ck3 = ck3Government ir = irGovernment }" ) ;
13- var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "ck3Government" } ) ;
14+ Directory . CreateDirectory ( "configurables" ) ;
15+ File . WriteAllText ( "configurables/government_map.txt" , "link = { ck3 = ck3Government ir = irGovernment }" ) ;
16+ var mapper = new GovernmentMapper ( ck3GovernmentIds : new List < string > { "ck3Government" } ) ;
17+ File . Delete ( "configurables/government_map.txt" ) ; // cleanup
18+
1419 var ck3Gov = mapper . GetCK3GovernmentForImperatorGovernment ( "nonMatchingGovernment" , rank : null , irCultureId : null , [ ] ) ;
1520 Assert . Null ( ck3Gov ) ;
1621 }
1722 [ Fact ]
1823 public void CK3GovernmentCanBeFound ( ) {
19- var reader = new BufferedReader ( "link = { ck3 = ck3Government ir = irGovernment }" ) ;
20- var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "ck3Government" } ) ;
24+ Directory . CreateDirectory ( "configurables" ) ;
25+ File . WriteAllText ( "configurables/government_map.txt" , "link = { ck3 = ck3Government ir = irGovernment }" ) ;
26+ var mapper = new GovernmentMapper ( ck3GovernmentIds : new List < string > { "ck3Government" } ) ;
27+ File . Delete ( "configurables/government_map.txt" ) ; // cleanup
28+
2129 var ck3Gov = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , irCultureId : null , [ ] ) ;
2230 Assert . Equal ( "ck3Government" , ck3Gov ) ;
2331 }
2432 [ Fact ]
2533 public void MultipleImperatorGovernmentsCanBeInARule ( ) {
26- var reader = new BufferedReader ( "link = { ck3 = ck3Government ir = irGovernment ir = irGovernment2 }" ) ;
27- var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "ck3Government" } ) ;
34+ Directory . CreateDirectory ( "configurables" ) ;
35+ File . WriteAllText ( "configurables/government_map.txt" , "link = { ck3 = ck3Government ir = irGovernment ir = irGovernment2 }" ) ;
36+ var mapper = new GovernmentMapper ( ck3GovernmentIds : new List < string > { "ck3Government" } ) ;
37+ File . Delete ( "configurables/government_map.txt" ) ; // cleanup
38+
2839 var ck3Gov1 = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , irCultureId : null , [ ] ) ;
2940 var ck3Gov2 = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment2" , rank : null , irCultureId : null , [ ] ) ;
3041 Assert . Equal ( "ck3Government" , ck3Gov1 ) ;
3142 Assert . Equal ( "ck3Government" , ck3Gov2 ) ;
3243 }
3344 [ Fact ]
3445 public void CorrectRuleMatches ( ) {
35- var reader = new BufferedReader (
46+ Directory . CreateDirectory ( "configurables" ) ;
47+ File . WriteAllText ( "configurables/government_map.txt" ,
3648 "link = { ck3 = ck3Government ir = irGovernment }\n " +
3749 "link = { ck3 = ck3Government2 ir = irGovernment2 }"
3850 ) ;
39- var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "ck3Government" , "ck3Government2" } ) ;
51+ var mapper = new GovernmentMapper ( ck3GovernmentIds : new List < string > { "ck3Government" , "ck3Government2" } ) ;
52+ File . Delete ( "configurables/government_map.txt" ) ; // cleanup
53+
4054 var ck3Gov = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment2" , rank : null , irCultureId : null , [ ] ) ;
4155 Assert . Equal ( "ck3Government2" , ck3Gov ) ;
4256 }
4357
4458 [ Fact ]
4559 public void CultureCanBeUsedToMatch ( ) {
46- var reader = new BufferedReader (
60+ Directory . CreateDirectory ( "configurables" ) ;
61+ File . WriteAllText ( "configurables/government_map.txt" ,
4762 "link = { ck3 = govA ir = irGovernment irCulture = roman }\n " +
4863 "link = { ck3 = govB ir = irGovernment irCulture = greek }\n " +
4964 "link = { ck3 = govC ir = irGovernment }"
5065 ) ;
51- var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "govA" , "govB" , "govC" } ) ;
66+ var mapper = new GovernmentMapper ( ck3GovernmentIds : new List < string > { "govA" , "govB" , "govC" } ) ;
67+ File . Delete ( "configurables/government_map.txt" ) ; // cleanup
68+
5269 Assert . Equal ( "govA" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , "roman" , [ ] ) ) ;
5370 Assert . Equal ( "govB" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , "greek" , [ ] ) ) ;
5471 Assert . Equal ( "govC" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , "thracian" , [ ] ) ) ;
@@ -57,13 +74,15 @@ public void CultureCanBeUsedToMatch() {
5774
5875 [ Fact ]
5976 public void CK3TitleRankCanBeUsedToMatch ( ) {
60- var reader = new BufferedReader (
77+ Directory . CreateDirectory ( "configurables" ) ;
78+ File . WriteAllText ( "configurables/government_map.txt" ,
6179 """
6280 link = { ck3 = administrative_government ir = imperium ck3_title_rank = ke } # only for kingdoms and empires
6381 link = { ck3 = feudal_government ir = imperium }
6482 """
6583 ) ;
66- var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : [ "administrative_government" , "feudal_government" ] ) ;
84+ var mapper = new GovernmentMapper ( ck3GovernmentIds : [ "administrative_government" , "feudal_government" ] ) ;
85+ File . Delete ( "configurables/government_map.txt" ) ; // cleanup
6786
6887 foreach ( var rank in new List < TitleRank > { TitleRank . empire , TitleRank . kingdom } ) {
6988 Assert . Equal ( "administrative_government" ,
@@ -79,7 +98,8 @@ public void CK3TitleRankCanBeUsedToMatch() {
7998
8099 [ Fact ]
81100 public void CK3DlcCanBeUsedToMatch ( ) {
82- var reader = new BufferedReader (
101+ Directory . CreateDirectory ( "configurables" ) ;
102+ File . WriteAllText ( "configurables/government_map.txt" ,
83103 """
84104 link = { ck3 = administrative_government
85105 has_ck3_dlc = roads_to_power
@@ -91,7 +111,8 @@ public void CK3DlcCanBeUsedToMatch() {
91111 ir = imperial_cult # When the user doesn't have the Roads to Power DLC.
92112 }
93113 """ ) ;
94- var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : [ "administrative_government" , "feudal_government" ] ) ;
114+ var mapper = new GovernmentMapper ( ck3GovernmentIds : [ "administrative_government" , "feudal_government" ] ) ;
115+ File . Delete ( "configurables/government_map.txt" ) ; // cleanup
95116
96117 Assert . Equal ( "administrative_government" , mapper . GetCK3GovernmentForImperatorGovernment ( "imperium" , rank : null , irCultureId : null , enabledCK3Dlcs : [ "roads_to_power" ] ) ) ;
97118 Assert . Equal ( "feudal_government" , mapper . GetCK3GovernmentForImperatorGovernment ( "imperium" , rank : null , irCultureId : null , enabledCK3Dlcs : [ ] ) ) ;
0 commit comments