mirror of
https://github.com/dcronqvist/DotTiled.git
synced 2025-05-08 23:56:04 +03:00
Move test data and current tests into UnitTests
This commit is contained in:
parent
0a77a9fec7
commit
d23eec4433
67 changed files with 55 additions and 65 deletions
49
src/DotTiled.Tests/UnitTests/Serialization/MapReaderTests.cs
Normal file
49
src/DotTiled.Tests/UnitTests/Serialization/MapReaderTests.cs
Normal file
|
@ -0,0 +1,49 @@
|
|||
using DotTiled.Serialization;
|
||||
|
||||
namespace DotTiled.Tests;
|
||||
|
||||
public partial class MapReaderTests
|
||||
{
|
||||
public static IEnumerable<object[]> Maps => TestData.MapTests;
|
||||
[Theory]
|
||||
[MemberData(nameof(Maps))]
|
||||
public void MapReaderReadMap_ValidFilesExternalTilesetsAndTemplates_ReturnsMapThatEqualsExpected(
|
||||
string testDataFile,
|
||||
Func<string, Map> expectedMap,
|
||||
IReadOnlyCollection<ICustomTypeDefinition> customTypeDefinitions)
|
||||
{
|
||||
// Arrange
|
||||
string[] fileFormats = [".tmx", ".tmj"];
|
||||
|
||||
foreach (var fileFormat in fileFormats)
|
||||
{
|
||||
var testDataFileWithFormat = testDataFile + fileFormat;
|
||||
var fileDir = Path.GetDirectoryName(testDataFileWithFormat);
|
||||
var mapString = TestData.GetRawStringFor(testDataFileWithFormat);
|
||||
Template ResolveTemplate(string source)
|
||||
{
|
||||
var templateString = TestData.GetRawStringFor($"{fileDir}/{source}");
|
||||
using var templateReader = new TemplateReader(templateString, ResolveTileset, ResolveTemplate, ResolveCustomType);
|
||||
return templateReader.ReadTemplate();
|
||||
}
|
||||
Tileset ResolveTileset(string source)
|
||||
{
|
||||
var tilesetString = TestData.GetRawStringFor($"{fileDir}/{source}");
|
||||
using var tilesetReader = new TilesetReader(tilesetString, ResolveTileset, ResolveTemplate, ResolveCustomType);
|
||||
return tilesetReader.ReadTileset();
|
||||
}
|
||||
ICustomTypeDefinition ResolveCustomType(string name)
|
||||
{
|
||||
return customTypeDefinitions.FirstOrDefault(ctd => ctd.Name == name)!;
|
||||
}
|
||||
using var mapReader = new MapReader(mapString, ResolveTileset, ResolveTemplate, ResolveCustomType);
|
||||
|
||||
// Act
|
||||
var map = mapReader.ReadMap();
|
||||
|
||||
// Assert
|
||||
Assert.NotNull(map);
|
||||
DotTiledAssert.AssertMap(expectedMap(fileFormat[1..]), map);
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue