diff --git a/Server.Tests/PacketTests.cs b/Server.Tests/PacketTests.cs new file mode 100644 index 0000000..50c79ce --- /dev/null +++ b/Server.Tests/PacketTests.cs @@ -0,0 +1,18 @@ +using System.Reflection; + +namespace Server.Tests; + +public class PacketTests +{ + [Fact] + public void TestPacketInheritingIPacket() + { + var allTypes = AppDomain.CurrentDomain.GetAssemblies().SelectMany(x => x.GetTypes()) + .Where(x => x.IsAssignableTo(typeof(Server.Packets.IPacket)) && x.IsClass); + if (!allTypes.Any()) + true.Should().BeTrue("There have been no types found which can be checked"); + else + allTypes.All(t => t.GetCustomAttributes().Any()) + .Should().BeTrue("All types inheriting from IPacket should have the PacketIdAttribute attribute."); + } +} \ No newline at end of file