2024-07-26 00:37:47 +02:00
|
|
|
namespace DotTiled.Tests;
|
|
|
|
|
2024-08-03 14:26:09 +02:00
|
|
|
public static partial class DotTiledAssert
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-03 14:26:09 +02:00
|
|
|
internal static void AssertProperties(Dictionary<string, IProperty>? expected, Dictionary<string, IProperty>? actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
|
|
|
if (expected is null)
|
|
|
|
{
|
|
|
|
Assert.Null(actual);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
Assert.NotNull(actual);
|
|
|
|
Assert.Equal(expected.Count, actual.Count);
|
|
|
|
foreach (var kvp in expected)
|
|
|
|
{
|
|
|
|
Assert.Contains(kvp.Key, actual.Keys);
|
|
|
|
AssertProperty((dynamic)kvp.Value, (dynamic)actual[kvp.Key]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void AssertProperty(IProperty actual, IProperty expected)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected.Type, actual.Type);
|
|
|
|
Assert.Equal(expected.Name, actual.Name);
|
|
|
|
AssertProperties((dynamic)actual, (dynamic)expected);
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void AssertProperty(StringProperty actual, StringProperty expected)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected.Value, actual.Value);
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void AssertProperty(IntProperty actual, IntProperty expected)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected.Value, actual.Value);
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void AssertProperty(FloatProperty actual, FloatProperty expected)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected.Value, actual.Value);
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void AssertProperty(BoolProperty actual, BoolProperty expected)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected.Value, actual.Value);
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void AssertProperty(ColorProperty actual, ColorProperty expected)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected.Value, actual.Value);
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void AssertProperty(FileProperty actual, FileProperty expected)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected.Value, actual.Value);
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void AssertProperty(ObjectProperty actual, ObjectProperty expected)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected.Value, actual.Value);
|
|
|
|
}
|
|
|
|
|
|
|
|
private static void AssertProperty(ClassProperty actual, ClassProperty expected)
|
|
|
|
{
|
|
|
|
Assert.Equal(expected.PropertyType, actual.PropertyType);
|
|
|
|
AssertProperties(actual.Properties, expected.Properties);
|
|
|
|
}
|
|
|
|
}
|