From 9088d5530d19f8aed93a9b33281f01e023a79e99 Mon Sep 17 00:00:00 2001 From: iht Date: Sun, 10 Nov 2024 12:39:46 +0100 Subject: [PATCH] More tests for the loading of families --- ...iliesTests.cs => FamilyCollectionTests.cs} | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) rename ImperatorToCK3.UnitTests/Imperator/Families/{FamiliesTests.cs => FamilyCollectionTests.cs} (58%) diff --git a/ImperatorToCK3.UnitTests/Imperator/Families/FamiliesTests.cs b/ImperatorToCK3.UnitTests/Imperator/Families/FamilyCollectionTests.cs similarity index 58% rename from ImperatorToCK3.UnitTests/Imperator/Families/FamiliesTests.cs rename to ImperatorToCK3.UnitTests/Imperator/Families/FamilyCollectionTests.cs index b4c919121..96b12272f 100644 --- a/ImperatorToCK3.UnitTests/Imperator/Families/FamiliesTests.cs +++ b/ImperatorToCK3.UnitTests/Imperator/Families/FamilyCollectionTests.cs @@ -1,11 +1,13 @@ using commonItems; +using System; +using System.IO; using Xunit; namespace ImperatorToCK3.UnitTests.Imperator.Families; [Collection("Sequential")] [CollectionDefinition("Sequential", DisableParallelization = true)] -public class FamiliesTests { +public class FamilyCollectionTests { [Fact] public void FamiliesDefaultToEmpty() { var reader = new BufferedReader( @@ -32,6 +34,19 @@ public void FamiliesCanBeLoaded() { item => Assert.Equal((ulong)42, item.Id), item => Assert.Equal((ulong)43, item.Id)); } + + [Fact] + public void FamiliesCanBeLoadedFromBloc() { + var reader = new BufferedReader( + "families = {\n42={}\n43={}\n}" + ); + var families = new ImperatorToCK3.Imperator.Families.FamilyCollection(); + families.LoadFamiliesFromBloc(reader); + + Assert.Collection(families, + item => Assert.Equal((ulong)42, item.Id), + item => Assert.Equal((ulong)43, item.Id)); + } [Fact] public void LiteralNoneFamiliesAreNotLoaded() { @@ -49,4 +64,18 @@ public void LiteralNoneFamiliesAreNotLoaded() { item => Assert.Equal((ulong)43, item.Id) ); } + + [Fact] + public void FamilyRedefinitionIsLogged() { + var reader = new BufferedReader( + "= {\n42={}\n42={}\n}" + ); + var families = new ImperatorToCK3.Imperator.Families.FamilyCollection(); + + var output = new StringWriter(); + Console.SetOut(output); + families.LoadFamilies(reader); + + Assert.Contains("Redefinition of family 42.", output.ToString()); + } } \ No newline at end of file