diff options
Diffstat (limited to 'Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests')
3 files changed, 428 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/FullMapRendererTest.cs b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/FullMapRendererTest.cs new file mode 100644 index 0000000..3f8ae1d --- /dev/null +++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/FullMapRendererTest.cs @@ -0,0 +1,291 @@ +//using Microsoft.Xna.Framework; +//using Microsoft.Xna.Framework.Graphics; +//using MonoGame.Extended.Shapes; +//using MonoGame.Extended.TextureAtlases; +//using MonoGame.Extended.Tiled; +//using MonoGame.Extended.Tiled.Graphics; +//using NSubstitute; +//using Xunit; + +//namespace MonoGame.Extended.Tests.Tiled.Renderers +//{ +// +// public class FullMapRendererTest +// { +// [Fact] +// public void Draw_MapObjectLayer_MissingGID_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// IShapeF shape = new RectangleF(1, 1, 1, 1); +// TiledObject[] objs = +// { +// new TiledObject(TiledObjectType.Tile, 1, null, shape, 1, 1) { IsVisible = true }, +// }; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Fact] +// public void Draw_MapObjectLayer_ShapeObject_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// IShapeF shape = new RectangleF(1, 1, 1, 1); +// TiledObject[] objs = +// { +// new TiledObject(TiledObjectType.Rectangle, 1, 1, shape, 1, 1) { IsVisible = true }, +// }; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Fact] +// public void Draw_MapObjectLayer_TileObject_OneGroup() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// IShapeF shape = new RectangleF(1, 1, 1, 1); +// TiledObject[] objs = +// { +// new TiledObject(TiledObjectType.Tile, 1, 1, shape, 1, 1) { IsVisible = true }, +// }; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.NotNull(gd.Indices); +// Assert.Equal(6, gd.Indices.IndexCount); +// } + +// [Fact] +// public void Draw_MapObjectLayer_NotVisible_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// IShapeF shape = new RectangleF(1, 1, 1, 1); +// TiledObject[] objs = +// { +// new TiledObject(TiledObjectType.Tile, 1, 1, shape, 1, 1) { IsVisible = false }, +// }; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Fact] +// public void Draw_MapObjectLayer_NoObjects_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); + +// TiledObject[] objs = {}; + +// var layer = new TiledObjectLayer("object", objs); +// m.AddLayer(layer); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Fact] +// public void Draw_MapTileLayer_TwoVisible_OneGroup() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); +// m.CreateTileLayer("tile", 2, 2, new int[] { 1, 0, 1, 0 }); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.NotNull(gd.Indices); +// Assert.Equal(12, gd.Indices.IndexCount); +// } + +// [Fact] +// public void Draw_MapTileLayer_AllBlank_NoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); + +// var m = new TiledMap("test", 2, 2, 32, 32); +// m.CreateTileset(texture, 0, 32, 32, 4); +// m.CreateTileLayer("tile", 2, 2, new int[] { 0, 0, 0, 0 }); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Fact] +// public void Draw_MapImageLayer_OneGroup() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); + +// var m = new TiledMap("test", 10, 10, 32, 32); +// m.CreateImageLayer("img", texture, new Vector2(100, 100)); + +// r.Map = m; + +// r.Draw(new Matrix()); + +// Assert.NotNull(gd.Indices); +// Assert.Equal(6, gd.Indices.IndexCount); +// } + +// [Fact] +// public void Draw_MapNoGroups() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); +// r.Map = new TiledMap("test", 10, 10, 32, 32); + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Fact] +// public void Draw_NoMap() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var r = new MockRenderer(gd); + +// r.Draw(new Matrix()); + +// Assert.IsNull(gd.Indices); +// } + +// [Fact] +// public void CreatePrimatives() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); +// var region = Substitute.For<TextureRegion2D>(texture, 1, 1, 32, 32); + +// VertexPositionTexture[] vertices; +// ushort[] indexes; + +// var r = new MockRenderer(gd); +// r.CreatePrimitives(new Point(0, 0), region, 0, 0.5f, out vertices, out indexes); + +// Assert.Equal(4, vertices.Length); +// Assert.Equal(new Vector3(0, 0, .5f), vertices[0].Position); +// Assert.Equal(new Vector2(0.0234375f, 0.0234375f), vertices[0].TextureCoordinate); +// Assert.Equal(new Vector3(32, 0, .5f), vertices[1].Position); +// Assert.Equal(new Vector2(0.515625f, 0.0234375f), vertices[1].TextureCoordinate); +// Assert.Equal(new Vector3(0, 32, .5f), vertices[2].Position); +// Assert.Equal(new Vector2(0.0234375f, 0.515625f), vertices[2].TextureCoordinate); +// Assert.Equal(new Vector3(32, 32, .5f), vertices[3].Position); +// Assert.Equal(new Vector2(0.515625f, 0.515625f), vertices[3].TextureCoordinate); + +// CollectionAssert.Equal(new[] { 0, 1, 2, 1, 3, 2 }, indexes); +// } + +// [Fact] +// public void CreatePrimatives_Offset10() +// { +// var gd = TestHelper.CreateGraphicsDevice(); +// var texture = Substitute.For<Texture2D>(gd, 64, 64); +// var region = Substitute.For<TextureRegion2D>(texture, 1, 1, 32, 32); + +// VertexPositionTexture[] vertices; +// ushort[] indexes; + +// var r = new MockRenderer(gd); +// r.CreatePrimitives(new Point(0, 0), region, 10, 0.5f, out vertices, out indexes); + +// Assert.Equal(4, vertices.Length); +// Assert.Equal(new Vector3(0, 0, .5f), vertices[0].Position); +// Assert.Equal(new Vector2(0.0234375f, 0.0234375f), vertices[0].TextureCoordinate); +// Assert.Equal(new Vector3(32, 0, .5f), vertices[1].Position); +// Assert.Equal(new Vector2(0.515625f, 0.0234375f), vertices[1].TextureCoordinate); +// Assert.Equal(new Vector3(0, 32, .5f), vertices[2].Position); +// Assert.Equal(new Vector2(0.0234375f, 0.515625f), vertices[2].TextureCoordinate); +// Assert.Equal(new Vector3(32, 32, .5f), vertices[3].Position); +// Assert.Equal(new Vector2(0.515625f, 0.515625f), vertices[3].TextureCoordinate); + +// CollectionAssert.Equal(new[] { 40, 41, 42, 41, 43, 42 }, indexes); +// } +// } + +// internal class MockRenderer : TiledMapRenderer +// { +// public MockRenderer(GraphicsDevice graphicsDevice) +// : base(graphicsDevice) +// { +// } + +// public void CreatePrimitives(Point point, TextureRegion2D region, int offset, float depth, +// out VertexPositionTexture[] vertices, out ushort[] indexes) +// { +// base.CreatePrimitives(point, region, offset, depth, out vertices, out indexes); +// } + +// public new void Draw(Matrix viewMatrix) +// { +// base.Draw(viewMatrix); +// } +// } +//} diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/MonoGame.Extended.Tiled.Tests.csproj b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/MonoGame.Extended.Tiled.Tests.csproj new file mode 100644 index 0000000..32a97f2 --- /dev/null +++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/MonoGame.Extended.Tiled.Tests.csproj @@ -0,0 +1,7 @@ +<Project Sdk="Microsoft.NET.Sdk"> + + <ItemGroup> + <ProjectReference Include="..\..\source\MonoGame.Extended.Tiled\MonoGame.Extended.Tiled.csproj" /> + </ItemGroup> + +</Project> diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/TiledTilesetTests.cs b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/TiledTilesetTests.cs new file mode 100644 index 0000000..e3e5084 --- /dev/null +++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/TiledTilesetTests.cs @@ -0,0 +1,130 @@ +//#region + +//using Microsoft.Xna.Framework.Content.Pipeline; +//using Microsoft.Xna.Framework.Content.Pipeline.Serialization.Compiler; +//using Microsoft.Xna.Framework.Graphics; +//using MonoGame.Extended.Tests; +//using Xunit; + +//#endregion + +//namespace MonoGame.Extended.Tiled.Tests +//{ +// +// public class TiledTilesetTests +// { +// [Fact] +// public void Constructor() +// { +// var graphicsDevice = TestHelper.CreateGraphicsDevice(); +// var texture = new Texture2D(graphicsDevice, 64, 64); + +// var tiledTileset = new TiledMapTileset(texture, 10, 32, 32, 4, 0, 0); + + +// //Assert.IsNull(tiledTileset.GetTileRegion(0)); +// } + +// [Fact] +// public void GetTileRegion_BlankTile() +// { +// var graphicsDevice = TestHelper.CreateGraphicsDevice(); +// var texture = new Texture2D(graphicsDevice, 64, 64); + +// var tiledTileset = new TiledTileset(texture, 10, 32, 32, 4, 0, 0); + + +// //Assert.IsNull(tiledTileset.GetTileRegion(0)); +// } + +// [Fact] +// [TestCase(9, Result = false, Description = "Too low")] +// [TestCase(10, Result = true, Description = "Min tile")] +// [TestCase(11, Result = true, Description = "Middle tile")] +// [TestCase(13, Result = true, Description = "Last tile")] +// [TestCase(14, Result = false, Description = "Too high")] +// public bool ContainsTileId(int id) +// { +// var graphicsDevice = TestHelper.CreateGraphicsDevice(); +// var texture = new Texture2D(graphicsDevice, 64, 64); + +// var tiledTileset = new TiledTileset(texture, 10, 32, 32, 4, 0, 0); + +// return tiledTileset.ContainsTileId(id); +// } + +// [Fact] +// public void Constructor_NoMargin([Values(0, 2)] int spacing) +// { +// var graphicsDevice = TestHelper.CreateGraphicsDevice(); +// var texture = new Texture2D(graphicsDevice, 64, 64); + +// var tiledTileset = new TiledTileset(texture, 1, 32, 32, 4, spacing, 0); + +// var region = tiledTileset.GetTileRegion(1); +// Assert.Equal(texture, region.Texture); +// Assert.Equal(0, region.X); +// Assert.Equal(0, region.Y); +// Assert.Equal(32, region.Width); +// Assert.Equal(32, region.Height); + +// region = tiledTileset.GetTileRegion(2); +// Assert.Equal(texture, region.Texture); +// Assert.Equal(spacing + 32, region.X); +// Assert.Equal(0, region.Y); +// Assert.Equal(32, region.Width); +// Assert.Equal(32, region.Height); + +// region = tiledTileset.GetTileRegion(3); +// Assert.Equal(texture, region.Texture); +// Assert.Equal(0, region.X); +// Assert.Equal(spacing + 32, region.Y); +// Assert.Equal(32, region.Width); +// Assert.Equal(32, region.Height); + +// region = tiledTileset.GetTileRegion(4); +// Assert.Equal(texture, region.Texture); +// Assert.Equal(spacing + 32, region.X); +// Assert.Equal(spacing + 32, region.Y); +// Assert.Equal(32, region.Width); +// Assert.Equal(32, region.Height); +// } + +// [Fact] +// public void Constructor_NoSpacing([Values(0, 2)] int margin) +// { +// var graphicsDevice = TestHelper.CreateGraphicsDevice(); +// var texture = new Texture2D(graphicsDevice, 64, 64); + +// var tileset = new TiledTileset(texture, 1, 32, 32, 4, 0, margin); + +// var region = tileset.GetTileRegion(1); +// Assert.Equal(texture, region.Texture); +// Assert.Equal(margin, region.X); +// Assert.Equal(margin, region.Y); +// Assert.Equal(32, region.Width); +// Assert.Equal(32, region.Height); + +// region = tileset.GetTileRegion(2); +// Assert.Equal(texture, region.Texture); +// Assert.Equal(margin + 32, region.X); +// Assert.Equal(margin, region.Y); +// Assert.Equal(32, region.Width); +// Assert.Equal(32, region.Height); + +// region = tileset.GetTileRegion(3); +// Assert.Equal(texture, region.Texture); +// Assert.Equal(margin, region.X); +// Assert.Equal(margin + 32, region.Y); +// Assert.Equal(32, region.Width); +// Assert.Equal(32, region.Height); + +// region = tileset.GetTileRegion(4); +// Assert.Equal(texture, region.Texture); +// Assert.Equal(margin + 32, region.X); +// Assert.Equal(margin + 32, region.Y); +// Assert.Equal(32, region.Width); +// Assert.Equal(32, region.Height); +// } +// } +//} |