mirror of
https://github.com/dcronqvist/DotTiled.git
synced 2025-05-09 04:26:04 +03:00
Make assertions tell you where they fail
This commit is contained in:
parent
4aebf1d67b
commit
da5bf73ca0
8 changed files with 178 additions and 193 deletions
|
@ -2,38 +2,63 @@ namespace DotTiled.Tests;
|
|||
|
||||
public static partial class DotTiledAssert
|
||||
{
|
||||
private static void AssertEqual<T>(T expected, T actual, string nameof)
|
||||
{
|
||||
if (expected == null)
|
||||
{
|
||||
Assert.Null(actual);
|
||||
return;
|
||||
}
|
||||
|
||||
if (typeof(T).IsArray)
|
||||
{
|
||||
var expectedArray = (Array)(object)expected;
|
||||
var actualArray = (Array)(object)actual!;
|
||||
|
||||
Assert.NotNull(actualArray);
|
||||
AssertEqual(expectedArray.Length, actualArray.Length, $"{nameof}.Length");
|
||||
|
||||
for (var i = 0; i < expectedArray.Length; i++)
|
||||
AssertEqual(expectedArray.GetValue(i), actualArray.GetValue(i), $"{nameof}[{i}]");
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
Assert.True(expected.Equals(actual), $"Expected {nameof} '{expected}' but got '{actual}'");
|
||||
}
|
||||
|
||||
internal static void AssertMap(Map expected, Map actual)
|
||||
{
|
||||
// Attributes
|
||||
Assert.Equal(expected.Version, actual.Version);
|
||||
Assert.Equal(expected.TiledVersion, actual.TiledVersion);
|
||||
Assert.Equal(expected.Class, actual.Class);
|
||||
Assert.Equal(expected.Orientation, actual.Orientation);
|
||||
Assert.Equal(expected.RenderOrder, actual.RenderOrder);
|
||||
Assert.Equal(expected.CompressionLevel, actual.CompressionLevel);
|
||||
Assert.Equal(expected.Width, actual.Width);
|
||||
Assert.Equal(expected.Height, actual.Height);
|
||||
Assert.Equal(expected.TileWidth, actual.TileWidth);
|
||||
Assert.Equal(expected.TileHeight, actual.TileHeight);
|
||||
Assert.Equal(expected.HexSideLength, actual.HexSideLength);
|
||||
Assert.Equal(expected.StaggerAxis, actual.StaggerAxis);
|
||||
Assert.Equal(expected.StaggerIndex, actual.StaggerIndex);
|
||||
Assert.Equal(expected.ParallaxOriginX, actual.ParallaxOriginX);
|
||||
Assert.Equal(expected.ParallaxOriginY, actual.ParallaxOriginY);
|
||||
Assert.Equal(expected.BackgroundColor, actual.BackgroundColor);
|
||||
Assert.Equal(expected.NextLayerID, actual.NextLayerID);
|
||||
Assert.Equal(expected.NextObjectID, actual.NextObjectID);
|
||||
Assert.Equal(expected.Infinite, actual.Infinite);
|
||||
AssertEqual(expected.Version, actual.Version, nameof(Map.Version));
|
||||
AssertEqual(expected.TiledVersion, actual.TiledVersion, nameof(Map.TiledVersion));
|
||||
AssertEqual(expected.Class, actual.Class, nameof(Map.Class));
|
||||
AssertEqual(expected.Orientation, actual.Orientation, nameof(Map.Orientation));
|
||||
AssertEqual(expected.RenderOrder, actual.RenderOrder, nameof(Map.RenderOrder));
|
||||
AssertEqual(expected.CompressionLevel, actual.CompressionLevel, nameof(Map.CompressionLevel));
|
||||
AssertEqual(expected.Width, actual.Width, nameof(Map.Width));
|
||||
AssertEqual(expected.Height, actual.Height, nameof(Map.Height));
|
||||
AssertEqual(expected.TileWidth, actual.TileWidth, nameof(Map.TileWidth));
|
||||
AssertEqual(expected.TileHeight, actual.TileHeight, nameof(Map.TileHeight));
|
||||
AssertEqual(expected.HexSideLength, actual.HexSideLength, nameof(Map.HexSideLength));
|
||||
AssertEqual(expected.StaggerAxis, actual.StaggerAxis, nameof(Map.StaggerAxis));
|
||||
AssertEqual(expected.StaggerIndex, actual.StaggerIndex, nameof(Map.StaggerIndex));
|
||||
AssertEqual(expected.ParallaxOriginX, actual.ParallaxOriginX, nameof(Map.ParallaxOriginX));
|
||||
AssertEqual(expected.ParallaxOriginY, actual.ParallaxOriginY, nameof(Map.ParallaxOriginY));
|
||||
AssertEqual(expected.BackgroundColor, actual.BackgroundColor, nameof(Map.BackgroundColor));
|
||||
AssertEqual(expected.NextLayerID, actual.NextLayerID, nameof(Map.NextLayerID));
|
||||
AssertEqual(expected.NextObjectID, actual.NextObjectID, nameof(Map.NextObjectID));
|
||||
AssertEqual(expected.Infinite, actual.Infinite, nameof(Map.Infinite));
|
||||
|
||||
AssertProperties(actual.Properties, expected.Properties);
|
||||
|
||||
Assert.NotNull(actual.Tilesets);
|
||||
Assert.Equal(expected.Tilesets.Count, actual.Tilesets.Count);
|
||||
AssertEqual(expected.Tilesets.Count, actual.Tilesets.Count, "Tilesets.Count");
|
||||
for (var i = 0; i < expected.Tilesets.Count; i++)
|
||||
AssertTileset(expected.Tilesets[i], actual.Tilesets[i]);
|
||||
|
||||
Assert.NotNull(actual.Layers);
|
||||
Assert.Equal(expected.Layers.Count, actual.Layers.Count);
|
||||
AssertEqual(expected.Layers.Count, actual.Layers.Count, "Layers.Count");
|
||||
for (var i = 0; i < expected.Layers.Count; i++)
|
||||
AssertLayer(expected.Layers[i], actual.Layers[i]);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue