1
1
using commonItems ;
2
+ using ImperatorToCK3 . CK3 . Titles ;
2
3
using ImperatorToCK3 . Mappers . Government ;
3
4
using System . Collections . Generic ;
4
5
using Xunit ;
@@ -10,22 +11,22 @@ public class GovernmentMapperTests {
10
11
public void NonMatchGivesNull ( ) {
11
12
var reader = new BufferedReader ( "link = { ck3 = ck3Government ir = irGovernment }" ) ;
12
13
var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "ck3Government" } ) ;
13
- var ck3Gov = mapper . GetCK3GovernmentForImperatorGovernment ( "nonMatchingGovernment" , null , [ ] ) ;
14
+ var ck3Gov = mapper . GetCK3GovernmentForImperatorGovernment ( "nonMatchingGovernment" , rank : null , irCultureId : null , [ ] ) ;
14
15
Assert . Null ( ck3Gov ) ;
15
16
}
16
17
[ Fact ]
17
18
public void CK3GovernmentCanBeFound ( ) {
18
19
var reader = new BufferedReader ( "link = { ck3 = ck3Government ir = irGovernment }" ) ;
19
20
var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "ck3Government" } ) ;
20
- var ck3Gov = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , null , [ ] ) ;
21
+ var ck3Gov = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , irCultureId : null , [ ] ) ;
21
22
Assert . Equal ( "ck3Government" , ck3Gov ) ;
22
23
}
23
24
[ Fact ]
24
25
public void MultipleImperatorGovernmentsCanBeInARule ( ) {
25
26
var reader = new BufferedReader ( "link = { ck3 = ck3Government ir = irGovernment ir = irGovernment2 }" ) ;
26
27
var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "ck3Government" } ) ;
27
- var ck3Gov1 = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , null , [ ] ) ;
28
- var ck3Gov2 = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment2" , null , [ ] ) ;
28
+ var ck3Gov1 = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , irCultureId : null , [ ] ) ;
29
+ var ck3Gov2 = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment2" , rank : null , irCultureId : null , [ ] ) ;
29
30
Assert . Equal ( "ck3Government" , ck3Gov1 ) ;
30
31
Assert . Equal ( "ck3Government" , ck3Gov2 ) ;
31
32
}
@@ -36,7 +37,7 @@ public void CorrectRuleMatches() {
36
37
"link = { ck3 = ck3Government2 ir = irGovernment2 }"
37
38
) ;
38
39
var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "ck3Government" , "ck3Government2" } ) ;
39
- var ck3Gov = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment2" , null , [ ] ) ;
40
+ var ck3Gov = mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment2" , rank : null , irCultureId : null , [ ] ) ;
40
41
Assert . Equal ( "ck3Government2" , ck3Gov ) ;
41
42
}
42
43
@@ -48,10 +49,32 @@ public void CultureCanBeUsedToMatch() {
48
49
"link = { ck3 = govC ir = irGovernment }"
49
50
) ;
50
51
var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : new List < string > { "govA" , "govB" , "govC" } ) ;
51
- Assert . Equal ( "govA" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , "roman" , [ ] ) ) ;
52
- Assert . Equal ( "govB" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , "greek" , [ ] ) ) ;
53
- Assert . Equal ( "govC" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , "thracian" , [ ] ) ) ;
54
- Assert . Equal ( "govC" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , null , [ ] ) ) ;
52
+ Assert . Equal ( "govA" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , "roman" , [ ] ) ) ;
53
+ Assert . Equal ( "govB" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , "greek" , [ ] ) ) ;
54
+ Assert . Equal ( "govC" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , "thracian" , [ ] ) ) ;
55
+ Assert . Equal ( "govC" , mapper . GetCK3GovernmentForImperatorGovernment ( "irGovernment" , rank : null , irCultureId : null , [ ] ) ) ;
56
+ }
57
+
58
+ [ Fact ]
59
+ public void CK3TitleRankCanBeUsedToMatch ( ) {
60
+ var reader = new BufferedReader (
61
+ """
62
+ link = { ck3 = administrative_government ir = imperium ck3_title_rank = ke } # only for kingdoms and empires
63
+ link = { ck3 = feudal_government ir = imperium }
64
+ """
65
+ ) ;
66
+ var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : [ "administrative_government" , "feudal_government" ] ) ;
67
+
68
+ foreach ( var rank in new List < TitleRank > { TitleRank . empire , TitleRank . kingdom } ) {
69
+ Assert . Equal ( "administrative_government" ,
70
+ mapper . GetCK3GovernmentForImperatorGovernment (
71
+ irGovernmentId : "imperium" , rank , irCultureId : null , enabledCK3Dlcs : [ ] ) ) ;
72
+ }
73
+ foreach ( var rank in new List < TitleRank > { TitleRank . duchy , TitleRank . county , TitleRank . barony } ) {
74
+ Assert . Equal ( "feudal_government" ,
75
+ mapper . GetCK3GovernmentForImperatorGovernment (
76
+ irGovernmentId : "imperium" , rank , irCultureId : null , enabledCK3Dlcs : [ ] ) ) ;
77
+ }
55
78
}
56
79
57
80
[ Fact ]
@@ -70,7 +93,7 @@ public void CK3DlcCanBeUsedToMatch() {
70
93
""" ) ;
71
94
var mapper = new GovernmentMapper ( reader , ck3GovernmentIds : [ "administrative_government" , "feudal_government" ] ) ;
72
95
73
- Assert . Equal ( "administrative_government" , mapper . GetCK3GovernmentForImperatorGovernment ( "imperium" , null , enabledCK3Dlcs : [ "roads_to_power" ] ) ) ;
74
- Assert . Equal ( "feudal_government" , mapper . GetCK3GovernmentForImperatorGovernment ( "imperium" , null , enabledCK3Dlcs : [ ] ) ) ;
96
+ Assert . Equal ( "administrative_government" , mapper . GetCK3GovernmentForImperatorGovernment ( "imperium" , rank : null , irCultureId : null , enabledCK3Dlcs : [ "roads_to_power" ] ) ) ;
97
+ Assert . Equal ( "feudal_government" , mapper . GetCK3GovernmentForImperatorGovernment ( "imperium" , rank : null , irCultureId : null , enabledCK3Dlcs : [ ] ) ) ;
75
98
}
76
99
}
0 commit comments