summaryrefslogtreecommitdiff
path: root/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests
diff options
context:
space:
mode:
Diffstat (limited to 'Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests')
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs34
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs30
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj16
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator-atlas.json390
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator.aa15
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset.json93
-rw-r--r--Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TexturePackerJsonImporterProcessorTests.cs33
7 files changed, 611 insertions, 0 deletions
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs
new file mode 100644
index 0000000..c3af651
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorImporterTests.cs
@@ -0,0 +1,34 @@
+using System;
+using System.IO;
+using MonoGame.Extended.Content.Pipeline.Animations;
+using Xunit;
+
+namespace MonoGame.Extended.Content.Pipeline.Tests
+{
+
+ public class AstridAnimatorImporterTests
+ {
+ [Fact]
+ public void AstridAnimatorImporter_Import_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath("TestData", "astrid-animator.aa");
+ var importer = new AstridAnimatorImporter();
+ var result = importer.Import(filePath, null);
+ var data = result.Data;
+
+ Assert.Equal("astrid-animator-atlas.json", data.TextureAtlas);
+ Assert.Equal(2, data.Animations.Count);
+
+ Assert.Equal("appear", data.Animations[0].Name);
+ Assert.Equal(8, data.Animations[0].FramesPerSecond);
+ Assert.Equal(2, data.Animations[0].Frames.Count);
+ Assert.Equal("appear_01", data.Animations[0].Frames[0]);
+ Assert.Equal("appear_02", data.Animations[0].Frames[1]);
+
+ Assert.Equal("die", data.Animations[1].Name);
+ Assert.Equal(16, data.Animations[1].FramesPerSecond);
+ Assert.Single(data.Animations[1].Frames);
+ Assert.Equal("die_01", data.Animations[1].Frames[0]);
+ }
+ }
+}
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs
new file mode 100644
index 0000000..0a27412
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/AstridAnimatorProcessorTests.cs
@@ -0,0 +1,30 @@
+using System;
+using System.IO;
+using MonoGame.Extended.Content.Pipeline.Animations;
+using Xunit;
+
+namespace MonoGame.Extended.Content.Pipeline.Tests
+{
+
+ public class AstridAnimatorProcessorTests
+ {
+ [Fact]
+ public void AstridAnimatorProcessor_Process_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath("TestData", "astrid-animator.aa");
+
+ var importer = new AstridAnimatorImporter();
+ var importerResult = importer.Import(filePath, null);
+
+ var processor = new AstridAnimatorProcessor();
+ var result = processor.Process(importerResult, null);
+
+ Assert.Equal("astrid-animator-atlas", result.TextureAtlasAssetName);
+ Assert.Equal("TestData", Path.GetFileName(result.Directory));
+ Assert.Equal(3, result.Frames.Count);
+ Assert.Equal("appear_01", result.Frames[0]);
+ Assert.Equal("appear_02", result.Frames[1]);
+ Assert.Equal("die_01", result.Frames[2]);
+ }
+ }
+} \ No newline at end of file
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj
new file mode 100644
index 0000000..cee444e
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/MonoGame.Extended.Content.Pipeline.Tests.csproj
@@ -0,0 +1,16 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <ItemGroup>
+ <PackageReference Include="MonoGame.Framework.Content.Pipeline" Version="3.8.1.303" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="..\..\source\MonoGame.Extended.Content.Pipeline\MonoGame.Extended.Content.Pipeline.csproj" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <None Update="TestData\astrid-animator-atlas.json" CopyToOutputDirectory="PreserveNewest" />
+ <None Update="TestData\astrid-animator.aa" CopyToOutputDirectory="PreserveNewest" />
+ <None Update="TestData\test-tileset.json" CopyToOutputDirectory="PreserveNewest" />
+ </ItemGroup>
+</Project>
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator-atlas.json b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator-atlas.json
new file mode 100644
index 0000000..7a9f9f0
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator-atlas.json
@@ -0,0 +1,390 @@
+{
+ "frames": [
+ {
+ "filename": "appear_01.png",
+ "frame": {"x":494,"y":111,"w":27,"h":31},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":52,"y":113,"w":27,"h":31},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_02.png",
+ "frame": {"x":465,"y":111,"w":27,"h":42},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":52,"y":102,"w":27,"h":42},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_03.png",
+ "frame": {"x":705,"y":158,"w":31,"h":52},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":41,"y":92,"w":31,"h":52},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_04.png",
+ "frame": {"x":112,"y":298,"w":74,"h":17},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":16,"y":127,"w":74,"h":17},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_05.png",
+ "frame": {"x":564,"y":621,"w":94,"h":62},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":16,"y":82,"w":94,"h":62},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_06.png",
+ "frame": {"x":507,"y":544,"w":106,"h":75},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":69,"w":106,"h":75},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_07.png",
+ "frame": {"x":119,"y":637,"w":98,"h":93},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":0,"y":51,"w":98,"h":93},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_08.png",
+ "frame": {"x":486,"y":621,"w":76,"h":118},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":12,"y":26,"w":76,"h":118},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_09.png",
+ "frame": {"x":321,"y":601,"w":73,"h":124},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":15,"y":20,"w":73,"h":124},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_10.png",
+ "frame": {"x":406,"y":600,"w":78,"h":140},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":10,"y":4,"w":78,"h":140},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "appear_11.png",
+ "frame": {"x":615,"y":469,"w":82,"h":144},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":11,"y":0,"w":82,"h":144},
+ "sourceSize": {"w":110,"h":144},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "die_01.png",
+ "frame": {"x":523,"y":15,"w":112,"h":144},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":38,"y":0,"w":112,"h":144},
+ "sourceSize": {"w":222,"h":146},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "die_02.png",
+ "frame": {"x":113,"y":2,"w":134,"h":129},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":32,"y":15,"w":134,"h":129},
+ "sourceSize": {"w":222,"h":146},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "die_03.png",
+ "frame": {"x":249,"y":2,"w":139,"h":106},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":36,"y":38,"w":139,"h":106},
+ "sourceSize": {"w":222,"h":146},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "die_04.png",
+ "frame": {"x":465,"y":161,"w":133,"h":73},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":44,"y":71,"w":133,"h":73},
+ "sourceSize": {"w":222,"h":146},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "die_05.png",
+ "frame": {"x":113,"y":133,"w":147,"h":69},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":42,"y":76,"w":147,"h":69},
+ "sourceSize": {"w":222,"h":146},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "die_06.png",
+ "frame": {"x":564,"y":685,"w":154,"h":51},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":41,"y":94,"w":154,"h":51},
+ "sourceSize": {"w":222,"h":146},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "die_07.png",
+ "frame": {"x":242,"y":266,"w":188,"h":24},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":28,"y":121,"w":188,"h":24},
+ "sourceSize": {"w":222,"h":146},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "die_08.png",
+ "frame": {"x":390,"y":2,"w":222,"h":11},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":0,"y":134,"w":222,"h":11},
+ "sourceSize": {"w":222,"h":146},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_01.png",
+ "frame": {"x":637,"y":2,"w":100,"h":154},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":0,"y":1,"w":100,"h":154},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_02.png",
+ "frame": {"x":262,"y":110,"w":100,"h":154},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":0,"y":1,"w":100,"h":154},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_03.png",
+ "frame": {"x":364,"y":111,"w":99,"h":153},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":2,"w":99,"h":153},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_04.png",
+ "frame": {"x":203,"y":298,"w":99,"h":153},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":2,"w":99,"h":153},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_05.png",
+ "frame": {"x":305,"y":447,"w":99,"h":152},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":3,"w":99,"h":152},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_06.png",
+ "frame": {"x":405,"y":292,"w":98,"h":152},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":2,"y":3,"w":98,"h":152},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_07.png",
+ "frame": {"x":304,"y":292,"w":99,"h":153},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":2,"w":99,"h":153},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_08.png",
+ "frame": {"x":103,"y":480,"w":99,"h":155},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":1,"w":99,"h":155},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_09.png",
+ "frame": {"x":2,"y":322,"w":99,"h":156},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":0,"w":99,"h":156},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "go_10.png",
+ "frame": {"x":2,"y":480,"w":99,"h":156},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":0,"w":99,"h":156},
+ "sourceSize": {"w":100,"h":156},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "hit_01.png",
+ "frame": {"x":2,"y":2,"w":109,"h":159},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":77,"y":0,"w":109,"h":159},
+ "sourceSize": {"w":186,"h":162},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "hit_02.png",
+ "frame": {"x":103,"y":322,"w":98,"h":156},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":79,"y":3,"w":98,"h":156},
+ "sourceSize": {"w":186,"h":162},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "hit_03.png",
+ "frame": {"x":2,"y":163,"w":108,"h":157},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":25,"y":3,"w":108,"h":157},
+ "sourceSize": {"w":186,"h":162},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "hit_04.png",
+ "frame": {"x":390,"y":15,"w":131,"h":94},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":0,"y":66,"w":131,"h":94},
+ "sourceSize": {"w":186,"h":162},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "hit_05.png",
+ "frame": {"x":112,"y":204,"w":128,"h":92},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":3,"y":70,"w":128,"h":92},
+ "sourceSize": {"w":186,"h":162},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "hit_06.png",
+ "frame": {"x":2,"y":638,"w":115,"h":100},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":16,"y":60,"w":115,"h":100},
+ "sourceSize": {"w":186,"h":162},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "hit_07.png",
+ "frame": {"x":219,"y":608,"w":100,"h":132},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":32,"y":28,"w":100,"h":132},
+ "sourceSize": {"w":186,"h":162},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "idle_01.png",
+ "frame": {"x":204,"y":453,"w":99,"h":153},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":0,"y":0,"w":99,"h":153},
+ "sourceSize": {"w":100,"h":154},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "idle_02.png",
+ "frame": {"x":406,"y":446,"w":99,"h":152},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":0,"y":1,"w":99,"h":152},
+ "sourceSize": {"w":100,"h":154},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "idle_03.png",
+ "frame": {"x":505,"y":236,"w":98,"h":152},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":1,"w":98,"h":152},
+ "sourceSize": {"w":100,"h":154},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "idle_04.png",
+ "frame": {"x":507,"y":390,"w":98,"h":152},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":1,"w":98,"h":152},
+ "sourceSize": {"w":100,"h":154},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "idle_05.png",
+ "frame": {"x":605,"y":161,"w":98,"h":152},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":1,"y":1,"w":98,"h":152},
+ "sourceSize": {"w":100,"h":154},
+ "pivot": {"x":0.5,"y":1}
+ },
+ {
+ "filename": "idle_06.png",
+ "frame": {"x":607,"y":315,"w":99,"h":152},
+ "rotated": false,
+ "trimmed": true,
+ "spriteSourceSize": {"x":0,"y":1,"w":99,"h":152},
+ "sourceSize": {"w":100,"h":154},
+ "pivot": {"x":0.5,"y":1}
+ }],
+ "meta": {
+ "app": "http://www.codeandweb.com/texturepacker",
+ "version": "1.0",
+ "image": "zombie.png",
+ "format": "RGBA8888",
+ "size": {"w":742,"h":742},
+ "scale": "0.5",
+ "smartupdate": "$TexturePacker:SmartUpdate:28fca4a18eeef90b2646ccc59eb1f593:ccb2bd5648fe15c740c647d39945c765:3e6ed6fe54c801c395eefb25aa5e45e8$"
+ }
+}
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator.aa b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator.aa
new file mode 100644
index 0000000..ba8d43f
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/astrid-animator.aa
@@ -0,0 +1,15 @@
+{
+ "TextureAtlas": "astrid-animator-atlas.json",
+ "Animations": [
+ {
+ "Name": "appear",
+ "FramesPerSecond": 8,
+ "Frames": [ "appear_01", "appear_02" ]
+ },
+ {
+ "Name": "die",
+ "FramesPerSecond": 16,
+ "Frames": [ "die_01" ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset.json b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset.json
new file mode 100644
index 0000000..57e46f5
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TestData/test-tileset.json
@@ -0,0 +1,93 @@
+{"frames": [
+
+{
+ "filename": "1.png",
+ "frame": {"x":2,"y":2,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32},
+ "pivot": {"x":0.5,"y":0.5}
+},
+{
+ "filename": "2.png",
+ "frame": {"x":36,"y":2,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32},
+ "pivot": {"x":0.5,"y":0.5}
+},
+{
+ "filename": "3.png",
+ "frame": {"x":70,"y":2,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32},
+ "pivot": {"x":0.5,"y":0.5}
+},
+{
+ "filename": "4.png",
+ "frame": {"x":2,"y":36,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32},
+ "pivot": {"x":0.5,"y":0.5}
+},
+{
+ "filename": "5.png",
+ "frame": {"x":36,"y":36,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32},
+ "pivot": {"x":0.5,"y":0.5}
+},
+{
+ "filename": "6.png",
+ "frame": {"x":70,"y":36,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32},
+ "pivot": {"x":0.5,"y":0.5}
+},
+{
+ "filename": "7.png",
+ "frame": {"x":2,"y":70,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32},
+ "pivot": {"x":0.5,"y":0.5}
+},
+{
+ "filename": "8.png",
+ "frame": {"x":36,"y":70,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32},
+ "pivot": {"x":0.5,"y":0.5}
+},
+{
+ "filename": "9.png",
+ "frame": {"x":70,"y":70,"w":32,"h":32},
+ "rotated": false,
+ "trimmed": false,
+ "spriteSourceSize": {"x":0,"y":0,"w":32,"h":32},
+ "sourceSize": {"w":32,"h":32},
+ "pivot": {"x":0.5,"y":0.5}
+}],
+"meta": {
+ "app": "http://www.codeandweb.com/texturepacker",
+ "version": "1.0",
+ "image": "test-tileset.png",
+ "format": "RGBA8888",
+ "size": {"w":104,"h":104},
+ "scale": "1",
+ "smartupdate": "$TexturePacker:SmartUpdate:f5f4c00eb32fae603057f0d9dc5c7b73:ca39697f48630ecdea6d81a8fdc48cf6:c79a4cc8e4ba9657462e67dafcaf93d2$"
+}
+}
diff --git a/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TexturePackerJsonImporterProcessorTests.cs b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TexturePackerJsonImporterProcessorTests.cs
new file mode 100644
index 0000000..4172ee2
--- /dev/null
+++ b/Plugins/MonoGame.Extended/tests/MonoGame.Extended.Content.Pipeline.Tests/TexturePackerJsonImporterProcessorTests.cs
@@ -0,0 +1,33 @@
+using Microsoft.Xna.Framework.Content.Pipeline;
+using MonoGame.Extended.Content.Pipeline.TextureAtlases;
+using NSubstitute;
+using Xunit;
+
+namespace MonoGame.Extended.Content.Pipeline.Tests
+{
+
+ public class TexturePackerJsonImporterProcessorTests
+ {
+ [Fact]
+ public void TexturePackerJsonImporter_Import_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath(@"TestData/test-tileset.json");
+ var importer = new TexturePackerJsonImporter();
+ var data = importer.Import(filePath, Substitute.For<ContentImporterContext>());
+
+ Assert.NotNull(data);
+ }
+
+ [Fact]
+ public void TexturePackerJsonImporter_Processor_Test()
+ {
+ var filePath = PathExtensions.GetApplicationFullPath(@"TestData/test-tileset.json");
+ var importer = new TexturePackerJsonImporter();
+ var input = importer.Import(filePath, Substitute.For<ContentImporterContext>());
+ var processor = new TexturePackerProcessor();
+ var output = processor.Process(input, Substitute.For<ContentProcessorContext>());
+
+ Assert.NotNull(output);
+ }
+ }
+} \ No newline at end of file