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);
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.Count, actual.Count, "Properties.Count");
|
2024-07-26 00:37:47 +02:00
|
|
|
foreach (var kvp in expected)
|
|
|
|
{
|
|
|
|
Assert.Contains(kvp.Key, actual.Keys);
|
|
|
|
AssertProperty((dynamic)kvp.Value, (dynamic)actual[kvp.Key]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-08-10 19:18:33 +02:00
|
|
|
private static void AssertProperty(IProperty expected, IProperty actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.Type, actual.Type, "Property.Type");
|
|
|
|
AssertEqual(expected.Name, actual.Name, "Property.Name");
|
2024-07-26 00:37:47 +02:00
|
|
|
AssertProperties((dynamic)actual, (dynamic)expected);
|
|
|
|
}
|
|
|
|
|
2024-08-10 19:18:33 +02:00
|
|
|
private static void AssertProperty(StringProperty expected, StringProperty actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.Value, actual.Value, "StringProperty.Value");
|
2024-07-26 00:37:47 +02:00
|
|
|
}
|
|
|
|
|
2024-08-10 19:18:33 +02:00
|
|
|
private static void AssertProperty(IntProperty expected, IntProperty actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.Value, actual.Value, "IntProperty.Value");
|
2024-07-26 00:37:47 +02:00
|
|
|
}
|
|
|
|
|
2024-08-10 19:18:33 +02:00
|
|
|
private static void AssertProperty(FloatProperty expected, FloatProperty actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.Value, actual.Value, "FloatProperty.Value");
|
2024-07-26 00:37:47 +02:00
|
|
|
}
|
|
|
|
|
2024-08-10 19:18:33 +02:00
|
|
|
private static void AssertProperty(BoolProperty expected, BoolProperty actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.Value, actual.Value, "BoolProperty.Value");
|
2024-07-26 00:37:47 +02:00
|
|
|
}
|
|
|
|
|
2024-08-10 19:18:33 +02:00
|
|
|
private static void AssertProperty(ColorProperty expected, ColorProperty actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.Value, actual.Value, "ColorProperty.Value");
|
2024-07-26 00:37:47 +02:00
|
|
|
}
|
|
|
|
|
2024-08-10 19:18:33 +02:00
|
|
|
private static void AssertProperty(FileProperty expected, FileProperty actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.Value, actual.Value, "FileProperty.Value");
|
2024-07-26 00:37:47 +02:00
|
|
|
}
|
|
|
|
|
2024-08-10 19:18:33 +02:00
|
|
|
private static void AssertProperty(ObjectProperty expected, ObjectProperty actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.Value, actual.Value, "ObjectProperty.Value");
|
2024-07-26 00:37:47 +02:00
|
|
|
}
|
|
|
|
|
2024-08-10 19:18:33 +02:00
|
|
|
private static void AssertProperty(ClassProperty expected, ClassProperty actual)
|
2024-07-26 00:37:47 +02:00
|
|
|
{
|
2024-08-12 22:00:59 +02:00
|
|
|
AssertEqual(expected.PropertyType, actual.PropertyType, "ClassProperty.PropertyType");
|
2024-08-10 19:18:33 +02:00
|
|
|
AssertProperties(expected.Properties, actual.Properties);
|
2024-07-26 00:37:47 +02:00
|
|
|
}
|
|
|
|
}
|