DotTiled/src/DotTiled.Tests/Assert/AssertProperties.cs

57 lines
2.3 KiB
C#
Raw Normal View History

2024-07-26 00:37:47 +02:00
namespace DotTiled.Tests;
public static partial class DotTiledAssert
2024-07-26 00:37:47 +02:00
{
internal static void AssertProperties(IList<IProperty>? expected, IList<IProperty>? actual)
2024-08-24 21:38:40 +02:00
{
if (expected is null)
{
Assert.Null(actual);
return;
}
Assert.NotNull(actual);
AssertEqual(expected.Count, actual.Count, "Properties.Count");
foreach (var prop in expected)
{
Assert.Contains(actual, p => p.Name == prop.Name);
var actualProp = actual.First(p => p.Name == prop.Name);
AssertEqual(prop.Type, actualProp.Type, "Property.Type");
AssertEqual(prop.Name, actualProp.Name, "Property.Name");
2024-08-24 21:38:40 +02:00
AssertProperty((dynamic)prop, (dynamic)actualProp);
}
}
2024-08-22 21:12:16 +02:00
private static void AssertProperty(StringProperty expected, StringProperty actual) => AssertEqual(expected.Value, actual.Value, "StringProperty.Value");
2024-07-26 00:37:47 +02:00
2024-08-22 21:12:16 +02:00
private static void AssertProperty(IntProperty expected, IntProperty actual) => AssertEqual(expected.Value, actual.Value, "IntProperty.Value");
2024-07-26 00:37:47 +02:00
2024-08-22 21:12:16 +02:00
private static void AssertProperty(FloatProperty expected, FloatProperty actual) => AssertEqual(expected.Value, actual.Value, "FloatProperty.Value");
2024-07-26 00:37:47 +02:00
2024-08-22 21:12:16 +02:00
private static void AssertProperty(BoolProperty expected, BoolProperty actual) => AssertEqual(expected.Value, actual.Value, "BoolProperty.Value");
2024-07-26 00:37:47 +02:00
2024-08-22 21:12:16 +02:00
private static void AssertProperty(ColorProperty expected, ColorProperty actual) => AssertEqual(expected.Value, actual.Value, "ColorProperty.Value");
2024-07-26 00:37:47 +02:00
2024-08-22 21:12:16 +02:00
private static void AssertProperty(FileProperty expected, FileProperty actual) => AssertEqual(expected.Value, actual.Value, "FileProperty.Value");
2024-07-26 00:37:47 +02:00
2024-08-22 21:12:16 +02:00
private static void AssertProperty(ObjectProperty expected, ObjectProperty actual) => 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
{
AssertEqual(expected.PropertyType, actual.PropertyType, "ClassProperty.PropertyType");
AssertProperties(expected.Value, actual.Value);
2024-07-26 00:37:47 +02:00
}
private static void AssertProperty(EnumProperty expected, EnumProperty actual)
{
AssertEqual(expected.PropertyType, actual.PropertyType, "EnumProperty.PropertyType");
AssertEqual(expected.Value.Count, actual.Value.Count, "EnumProperty.Value.Count");
foreach (var value in expected.Value)
{
Assert.Contains(actual.Value, v => v == value);
}
}
2024-07-26 00:37:47 +02:00
}