@@ -25,7 +25,9 @@ public class TitleMappingTests {
25
25
public void SimpleTagMatch ( ) {
26
26
var reader = new BufferedReader ( "{ ck3 = e_roman_empire ir = ROM }" ) ;
27
27
var mapping = TitleMapping . Parse ( reader ) ;
28
- var match = mapping . RankMatch ( "ROM" , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
28
+
29
+ var country = new Country ( 1 ) { Tag = "ROM" } ;
30
+ var match = mapping . RankMatch ( country , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
29
31
30
32
Assert . Equal ( "e_roman_empire" , match ) ;
31
33
}
@@ -34,7 +36,9 @@ public void SimpleTagMatch() {
34
36
public void SimpleTagMatchFailsOnWrongTag ( ) {
35
37
var reader = new BufferedReader ( "{ ck3 = e_roman_empire ir = REM }" ) ;
36
38
var mapping = TitleMapping . Parse ( reader ) ;
37
- var match = mapping . RankMatch ( "ROM" , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
39
+
40
+ var country = new Country ( 1 ) { Tag = "ROM" } ;
41
+ var match = mapping . RankMatch ( country , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
38
42
39
43
Assert . Null ( match ) ;
40
44
}
@@ -43,7 +47,9 @@ public void SimpleTagMatchFailsOnWrongTag() {
43
47
public void SimpleTagMatchFailsOnNoTag ( ) {
44
48
var reader = new BufferedReader ( "{ ck3 = e_roman_empire }" ) ;
45
49
var mapping = TitleMapping . Parse ( reader ) ;
46
- var match = mapping . RankMatch ( "ROM" , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
50
+
51
+ var country = new Country ( 1 ) { Tag = "ROM" } ;
52
+ var match = mapping . RankMatch ( country , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
47
53
48
54
Assert . Null ( match ) ;
49
55
}
@@ -52,7 +58,9 @@ public void SimpleTagMatchFailsOnNoTag() {
52
58
public void TagRankMatch ( ) {
53
59
var reader = new BufferedReader ( "{ ck3 = e_roman_empire ir = ROM rank = e }" ) ;
54
60
var mapping = TitleMapping . Parse ( reader ) ;
55
- var match = mapping . RankMatch ( "ROM" , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
61
+
62
+ var country = new Country ( 1 ) { Tag = "ROM" } ;
63
+ var match = mapping . RankMatch ( country , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
56
64
57
65
Assert . Equal ( "e_roman_empire" , match ) ;
58
66
}
@@ -61,7 +69,9 @@ public void TagRankMatch() {
61
69
public void TagRankMatchFailsOnWrongRank ( ) {
62
70
var reader = new BufferedReader ( "{ ck3 = e_roman_empire ir = ROM rank = k }" ) ;
63
71
var mapping = TitleMapping . Parse ( reader ) ;
64
- var match = mapping . RankMatch ( "ROM" , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
72
+
73
+ var country = new Country ( 1 ) { Tag = "ROM" } ;
74
+ var match = mapping . RankMatch ( country , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
65
75
66
76
Assert . Null ( match ) ;
67
77
}
@@ -70,11 +80,39 @@ public void TagRankMatchFailsOnWrongRank() {
70
80
public void TagRankMatchSucceedsOnNoRank ( ) {
71
81
var reader = new BufferedReader ( "{ ck3 = e_roman_empire ir = ROM }" ) ;
72
82
var mapping = TitleMapping . Parse ( reader ) ;
73
- var match = mapping . RankMatch ( "ROM" , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
83
+
84
+ var country = new Country ( 1 ) { Tag = "ROM" } ;
85
+ var match = mapping . RankMatch ( country , TitleRank . empire , maxTitleRank : TitleRank . empire ) ;
74
86
75
87
Assert . Equal ( "e_roman_empire" , match ) ;
76
88
}
77
89
90
+ [ Fact ]
91
+ public void CountryNameCanBeUsedInAMapping ( ) {
92
+ var reader = new BufferedReader ( """
93
+ {
94
+ ck3 = e_byzantium
95
+ ir_name_key = ERE
96
+ ir_name_key = eastern_roman_republic_name # multiple ir_name_keys are allowed
97
+ }
98
+ """ ) ;
99
+ var mapping = TitleMapping . Parse ( reader ) ;
100
+
101
+ // If the mapping has no "ir" parameter, and the country name key matches the ones in the mapping,
102
+ // the mapping should match regardless of the tag.
103
+ var ereCountry1 = new Country ( 1 ) { Tag = "X01" , CountryName = new ( ) { Name = "ERE" } } ;
104
+ var ereCountry2 = new Country ( 2 ) { Tag = "X02" , CountryName = new ( ) { Name = "eastern_roman_republic_name" } } ;
105
+ Assert . Equal ( "e_byzantium" , mapping . RankMatch ( ereCountry1 , TitleRank . empire , maxTitleRank : TitleRank . empire ) ) ;
106
+ Assert . Equal ( "e_byzantium" , mapping . RankMatch ( ereCountry2 , TitleRank . empire , maxTitleRank : TitleRank . empire ) ) ;
107
+
108
+ var nonEreCountry = new Country ( 3 ) { Tag = "X03" , CountryName = new ( ) { Name = "non_ERE" } } ;
109
+ Assert . Null ( mapping . RankMatch ( nonEreCountry , TitleRank . empire , maxTitleRank : TitleRank . empire ) ) ;
110
+
111
+ // A country with tag ERE should not match, we're comparing names!
112
+ var ereTagCountry = new Country ( 4 ) { Tag = "ERE" , CountryName = new ( ) { Name = "non_ERE" } } ;
113
+ Assert . Null ( mapping . RankMatch ( ereTagCountry , TitleRank . empire , maxTitleRank : TitleRank . empire ) ) ;
114
+ }
115
+
78
116
[ Fact ]
79
117
public void GovernorshipToDeJureDuchyMappingFailsIfDuchyIsNot60PercentControlled ( ) {
80
118
var irProvinces = new ProvinceCollection {
0 commit comments