Skip to content

Commit 7efcd94

Browse files
authored
Remove GovernmentMapper constructor used only in tests (#2712)
1 parent 3ac8f2d commit 7efcd94

File tree

3 files changed

+48
-31
lines changed

3 files changed

+48
-31
lines changed

ImperatorToCK3.UnitTests/CK3/Titles/RulerTermTests.cs

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
using Xunit;
1818
using System;
1919
using System.Collections.Generic;
20+
using System.IO;
2021

2122
namespace ImperatorToCK3.UnitTests.CK3.Titles;
2223

@@ -49,8 +50,10 @@ public void ImperatorRulerTermIsCorrectlyConverted() {
4950
"government = dictatorship"
5051
);
5152
var impRulerTerm = ImperatorToCK3.Imperator.Countries.RulerTerm.Parse(reader);
52-
var govReader = new BufferedReader("link = {ir=dictatorship ck3=feudal_government }");
53-
var govMapper = new GovernmentMapper(govReader, ck3GovernmentIds: new List<string> {"feudal_government"});
53+
Directory.CreateDirectory("configurables");
54+
File.WriteAllText("configurables/government_map.txt", "link = {ir=dictatorship ck3=feudal_government }");
55+
var govMapper = new GovernmentMapper(ck3GovernmentIds: new List<string> {"feudal_government"});
56+
File.Delete("configurables/government_map.txt"); // cleanup
5457
var landedTitles = new Title.LandedTitles();
5558
var ck3Religions = new ReligionCollection(landedTitles);
5659
var ck3RegionMapper = new CK3RegionMapper();
@@ -94,8 +97,10 @@ public void PreImperatorTermIsCorrectlyConverted() {
9497
var landedTitles = new Title.LandedTitles();
9598
var ck3Religions = new ReligionCollection(landedTitles);
9699
ck3Religions.LoadReligions(ck3ModFs, new ColorFactory());
97-
var govReader = new BufferedReader("link = {ir=dictatorship ck3=feudal_government }");
98-
var govMapper = new GovernmentMapper(govReader, ck3GovernmentIds: new List<string> {"feudal_government"});
100+
Directory.CreateDirectory("configurables");
101+
File.WriteAllText("configurables/government_map.txt", "link = {ir=dictatorship ck3=feudal_government }");
102+
var govMapper = new GovernmentMapper(ck3GovernmentIds: new List<string> {"feudal_government"});
103+
File.Delete("configurables/government_map.txt"); // cleanup
99104
var ck3RegionMapper = new CK3RegionMapper();
100105
var religionMapper = new ReligionMapper(
101106
new BufferedReader("link={ir=hellenic ck3=hellenic}"),

ImperatorToCK3.UnitTests/Mappers/Government/GovernmentMapperTests.cs

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,54 +1,71 @@
1-
using commonItems;
2-
using ImperatorToCK3.CK3.Titles;
1+
using ImperatorToCK3.CK3.Titles;
32
using ImperatorToCK3.Mappers.Government;
43
using System.Collections.Generic;
4+
using System.IO;
55
using Xunit;
66

77
namespace ImperatorToCK3.UnitTests.Mappers.Government;
88

9+
[Collection("Sequential")]
10+
[CollectionDefinition("Sequential", DisableParallelization = true)]
911
public 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: []));

ImperatorToCK3/Mappers/Government/GovernmentMapper.cs

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,25 @@
22
using ImperatorToCK3.CK3.Titles;
33
using System;
44
using System.Collections.Generic;
5-
using System.IO;
65
using System.Linq;
76

87
namespace ImperatorToCK3.Mappers.Government;
98

10-
public sealed class GovernmentMapper {
9+
internal sealed class GovernmentMapper {
1110
private readonly List<GovernmentMapping> mappings = [];
1211

1312
public GovernmentMapper(ICollection<string> ck3GovernmentIds) {
1413
Logger.Info("Parsing government mappings...");
1514

1615
var parser = new Parser();
1716
RegisterKeys(parser);
18-
var mappingsPath = Path.Combine("configurables", "government_map.txt");
19-
parser.ParseFile(mappingsPath);
17+
parser.ParseFile("configurables/government_map.txt");
2018

2119
Logger.Info($"Loaded {mappings.Count} government links.");
2220

2321
Logger.Debug("Removing invalid government links...");
2422
RemoveInvalidLinks(ck3GovernmentIds);
2523
}
26-
public GovernmentMapper(BufferedReader reader, ICollection<string> ck3GovernmentIds) { // used for testing only, TODO: remove
27-
var parser = new Parser();
28-
RegisterKeys(parser);
29-
parser.ParseStream(reader);
30-
31-
RemoveInvalidLinks(ck3GovernmentIds);
32-
}
3324
private void RegisterKeys(Parser parser) {
3425
parser.RegisterKeyword("link", reader => {
3526
var mapping = new GovernmentMapping(reader);

0 commit comments

Comments
 (0)