summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests')
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/FullMapRendererTest.cs291
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/MonoGame.Extended.Tiled.Tests.csproj7
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Tiled.Tests/TiledTilesetTests.cs130
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);
+// }
+// }
+//}