diff --git a/NHSE.Core/Util/StructConverter.cs b/NHSE.Core/Util/StructConverter.cs index 5c702c4..b5e52b8 100644 --- a/NHSE.Core/Util/StructConverter.cs +++ b/NHSE.Core/Util/StructConverter.cs @@ -7,7 +7,7 @@ namespace NHSE.Core /// /// Logic for converting raw data to class/stack struct, and back to data. /// - internal static class StructConverter + public static class StructConverter { public static T ToStructure(this byte[] bytes) where T : struct { diff --git a/NHSE.Tests/ItemTests.cs b/NHSE.Tests/ItemTests.cs new file mode 100644 index 0000000..6bc0a99 --- /dev/null +++ b/NHSE.Tests/ItemTests.cs @@ -0,0 +1,25 @@ +using FluentAssertions; +using NHSE.Core; +using Xunit; + +namespace NHSE.Tests +{ + public class ItemTests + { + [Fact] + public void ItemMarshal() + { + var item = new Item(); + var bytes = item.ToBytesClass(); + bytes.Length.Should().Be(Item.SIZE); + } + + [Fact] + public void VillagerItemMarshal() + { + var item = new VillagerItem(); + var bytes = item.ToBytesClass(); + bytes.Length.Should().Be(VillagerItem.SIZE); + } + } +} diff --git a/NHSE.Tests/NHSE.Tests.csproj b/NHSE.Tests/NHSE.Tests.csproj new file mode 100644 index 0000000..70b847c --- /dev/null +++ b/NHSE.Tests/NHSE.Tests.csproj @@ -0,0 +1,23 @@ + + + + netcoreapp3.1 + + false + + + + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + + + + diff --git a/NHSE.sln b/NHSE.sln index 15a90ca..c1f1636 100644 --- a/NHSE.sln +++ b/NHSE.sln @@ -11,6 +11,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "NHSE.Sprites", "NHSE.Sprite EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NHSE.Parsing", "NHSE.Parsing\NHSE.Parsing.csproj", "{D6E5CE99-6182-49BA-AD8D-EC12E90A20E3}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NHSE.Tests", "NHSE.Tests\NHSE.Tests.csproj", "{AD3412A3-74EA-443D-BB07-B36E39D5166F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -33,6 +35,10 @@ Global {D6E5CE99-6182-49BA-AD8D-EC12E90A20E3}.Debug|Any CPU.Build.0 = Debug|Any CPU {D6E5CE99-6182-49BA-AD8D-EC12E90A20E3}.Release|Any CPU.ActiveCfg = Release|Any CPU {D6E5CE99-6182-49BA-AD8D-EC12E90A20E3}.Release|Any CPU.Build.0 = Release|Any CPU + {AD3412A3-74EA-443D-BB07-B36E39D5166F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {AD3412A3-74EA-443D-BB07-B36E39D5166F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {AD3412A3-74EA-443D-BB07-B36E39D5166F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {AD3412A3-74EA-443D-BB07-B36E39D5166F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE