mirror of
https://github.com/SabreTools/SabreTools.IO.git
synced 2026-07-09 02:08:11 +00:00
This change looks dramatic, but it's just separating out the already-split namespaces into separate top-level folders. In theory, every single one could be built into their own Nuget package. `SabreTools.IO.Meta` builds the normal Nuget package that is used by all other projects and includes all namespaces. `SabreTools.IO` builds to `SabreTools.IO.Common` to avoid overwriting issues on publish.
86 lines
2.6 KiB
C#
86 lines
2.6 KiB
C#
using System.Collections.Generic;
|
|
using Xunit;
|
|
|
|
namespace SabreTools.IO.Extensions.Test
|
|
{
|
|
public class DictionaryExtensionsTests
|
|
{
|
|
#region MergeWith
|
|
|
|
[Fact]
|
|
public void MergeWith_EmptySource_EmptyOther_Empty()
|
|
{
|
|
Dictionary<string, List<string>> source = [];
|
|
Dictionary<string, List<string>> other = [];
|
|
|
|
source.MergeWith(other);
|
|
Assert.Empty(source);
|
|
}
|
|
|
|
[Fact]
|
|
public void MergeWith_EmptySource_EmptyKeyOther_Empty()
|
|
{
|
|
Dictionary<string, List<string>> source = [];
|
|
Dictionary<string, List<string>> other = [];
|
|
other.Add("key", []);
|
|
|
|
source.MergeWith(other);
|
|
Assert.Empty(source);
|
|
}
|
|
|
|
[Fact]
|
|
public void MergeWith_EmptySource_FilledOther_Filled()
|
|
{
|
|
Dictionary<string, List<string>> source = [];
|
|
Dictionary<string, List<string>> other = [];
|
|
other.Add("key", ["value"]);
|
|
|
|
source.MergeWith(other);
|
|
string key = Assert.Single(source.Keys);
|
|
Assert.Equal("key", key);
|
|
List<string> actual = source[key];
|
|
string value = Assert.Single(actual);
|
|
Assert.Equal("value", value);
|
|
}
|
|
|
|
[Fact]
|
|
public void MergeWith_FilledSource_EmptyOther_Filled()
|
|
{
|
|
Dictionary<string, List<string>> source = [];
|
|
source.Add("key", ["value"]);
|
|
Dictionary<string, List<string>> other = [];
|
|
|
|
source.MergeWith(other);
|
|
string key = Assert.Single(source.Keys);
|
|
Assert.Equal("key", key);
|
|
List<string> actual = source[key];
|
|
string value = Assert.Single(actual);
|
|
Assert.Equal("value", value);
|
|
}
|
|
|
|
[Fact]
|
|
public void MergeWith_FilledSource_FilledOther_Filled()
|
|
{
|
|
Dictionary<string, List<string>> source = [];
|
|
source.Add("key1", ["value1"]);
|
|
Dictionary<string, List<string>> other = [];
|
|
other.Add("key2", ["value2"]);
|
|
|
|
source.MergeWith(other);
|
|
Assert.Equal(2, source.Keys.Count);
|
|
|
|
Assert.Contains("key1", source.Keys);
|
|
List<string> actualKey1 = source["key1"];
|
|
string value1 = Assert.Single(actualKey1);
|
|
Assert.Equal("value1", value1);
|
|
|
|
Assert.Contains("key2", source.Keys);
|
|
List<string> actualKey2 = source["key2"];
|
|
string value2 = Assert.Single(actualKey2);
|
|
Assert.Equal("value2", value2);
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|