From bfa4230cd0e3b416a7fe110aaf4c5600dc2dbc14 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Nov 2025 00:36:08 +0000 Subject: [PATCH 01/13] Upgrade to .NET 10 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated all project files and CI/CD workflow to target .NET 10: - src/NosCore.Packets/NosCore.Packets.csproj: net8.0 → net10.0 - test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj: net8.0 → net10.0 - test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj: net8.0 → net10.0 - .github/workflows/dotnet.yml: dotnet-version 8.0.x → 10.0.x --- .github/workflows/dotnet.yml | 2 +- src/NosCore.Packets/NosCore.Packets.csproj | 2 +- test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj | 2 +- test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 3468580..3554298 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -16,7 +16,7 @@ jobs: - name: Setup .NET uses: actions/setup-dotnet@v3 with: - dotnet-version: 8.0.x + dotnet-version: 10.0.x - name: Check Tag id: check-tag diff --git a/src/NosCore.Packets/NosCore.Packets.csproj b/src/NosCore.Packets/NosCore.Packets.csproj index 8568b79..f776000 100644 --- a/src/NosCore.Packets/NosCore.Packets.csproj +++ b/src/NosCore.Packets/NosCore.Packets.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 latest favicon.ico true diff --git a/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj b/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj index 3ca0ded..7c61207 100644 --- a/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj +++ b/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj @@ -2,7 +2,7 @@ Exe - net8.0 + net10.0 enable true diff --git a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj index bd7425c..e1577f8 100644 --- a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj +++ b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj @@ -1,7 +1,7 @@  - net8.0 + net10.0 enable false true From 7ae2044e940cffb4c76f400e1f85e21accda41ac Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Nov 2025 00:50:46 +0000 Subject: [PATCH 02/13] Update NuGet packages to latest versions for .NET 10 compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Updated test and benchmark project packages: Benchmark project: - BenchmarkDotNet: 0.13.12 → 0.15.7 - Microsoft.CodeAnalysis.CSharp: 4.10.0 → 4.14.0 Test project: - coverlet.collector: 6.0.2 → 6.0.4 - Microsoft.NET.Test.Sdk: 17.10.0 → 18.0.1 - Moq: 4.20.70 → 4.20.72 - MSTest.TestAdapter: 3.4.3 → 4.0.2 - MSTest.TestFramework: 3.4.3 → 4.0.2 - Verify.MSTest: 25.0.3 → 30.20.1 --- .../NosCore.Packets.Benchmark.csproj | 4 ++-- .../NosCore.Packets.Tests.csproj | 12 ++++++------ 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj b/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj index 7c61207..6c1d403 100644 --- a/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj +++ b/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj @@ -8,8 +8,8 @@ - - + + diff --git a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj index e1577f8..5710889 100644 --- a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj +++ b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj @@ -8,17 +8,17 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive - - - - + + + + - + From 880c7b88d56bfff445ebcd5419b67046c4b68eb6 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Nov 2025 00:53:29 +0000 Subject: [PATCH 03/13] Fix deprecated GitHub Actions syntax and update actions to latest versions Fixes: - Updated actions/checkout from v2 to v4 - Updated actions/setup-dotnet from v3 to v4 for better .NET 10 support - Replaced deprecated 'create' event with 'push' tags filter - Fixed deprecated 'echo ::set-output' syntax with $GITHUB_OUTPUT - Fixed tag reference from github.event.ref to github.ref - Properly extract tag name using bash parameter expansion - Replaced deprecated actions/upload-release-asset@v1 with softprops/action-gh-release@v2 - Removed unnecessary jossef/action-latest-release-info step - Fixed GITHUB_TOKEN reference to use secrets.GITHUB_TOKEN --- .github/workflows/dotnet.yml | 34 ++++++++++++---------------------- 1 file changed, 12 insertions(+), 22 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 3554298..287dc4f 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -3,7 +3,6 @@ name: .NET on: push: branches: [ master ] - create: tags: - '*.*.*' pull_request: @@ -12,17 +11,17 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: 10.0.x - name: Check Tag id: check-tag run: | - if [[ v${{ github.event.ref }} =~ ^v[0-9]+\.[0-9]+\.[0-9]+$ ]]; then - echo ::set-output name=match::true + if [[ ${{ github.ref }} =~ ^refs/tags/[0-9]+\.[0-9]+\.[0-9]+$ ]]; then + echo "match=true" >> $GITHUB_OUTPUT fi - name: Run Unit Tests @@ -35,27 +34,18 @@ jobs: if: steps.check-tag.outputs.match == 'true' id: build_artifact run: | + TAG_NAME=${GITHUB_REF#refs/tags/} dotnet restore dotnet build -c Release dotnet pack -c Release -o /tmp/nupkgs -v m -p:IncludeSymbols=true -p:SymbolPackageFormat=snupkg - dotnet nuget push /tmp/nupkgs/NosCore.Packets.${{github.event.ref}}.nupkg -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}} - echo ::set-output name=ARTIFACT_PATH::/tmp/nupkgs/NosCore.Packets.${{github.event.ref}}.nupkg - echo ::set-output name=ARTIFACT_NAME::NosCore.Packets.${{github.event.ref}}.nupkg - - - name: Gets Latest Release - if: steps.check-tag.outputs.match == 'true' - id: latest_release_info - uses: jossef/action-latest-release-info@v1.1.0 - env: - GITHUB_TOKEN: ${{ github.token }} + dotnet nuget push /tmp/nupkgs/NosCore.Packets.${TAG_NAME}.nupkg -s https://api.nuget.org/v3/index.json -k ${{secrets.NUGET_API_KEY}} + echo "ARTIFACT_PATH=/tmp/nupkgs/NosCore.Packets.${TAG_NAME}.nupkg" >> $GITHUB_OUTPUT + echo "ARTIFACT_NAME=NosCore.Packets.${TAG_NAME}.nupkg" >> $GITHUB_OUTPUT - name: Upload Release Asset if: steps.check-tag.outputs.match == 'true' - uses: actions/upload-release-asset@v1 - env: - GITHUB_TOKEN: ${{ github.token }} + uses: softprops/action-gh-release@v2 with: - upload_url: ${{ steps.latest_release_info.outputs.upload_url }} - asset_path: ${{ steps.build_artifact.outputs.ARTIFACT_PATH }} - asset_name: ${{ steps.build_artifact.outputs.ARTIFACT_NAME }} - asset_content_type: application/zip + files: ${{ steps.build_artifact.outputs.ARTIFACT_PATH }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From ddfb7a5ee2ed59e1fdff8a7c94f47e42f10f01f0 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Nov 2025 01:04:30 +0000 Subject: [PATCH 04/13] Fix MSTEST0037 analyzer errors by replacing Assert.IsTrue with Assert.AreEqual Replaced Assert.IsTrue(x == y) with Assert.AreEqual(expected, actual) throughout test files to comply with MSTest analyzer MSTEST0037 which requires more specific assertion methods. Changes: - DeserializerTest.cs: Updated 75 assertions to use Assert.AreEqual for equality checks - SerializerTest.cs: Updated 1 assertion to use Assert.IsNotNull for null checks This fixes compilation errors caused by TreatWarningsAsErrors being enabled with the newer MSTest 4.0.2 analyzer rules. --- .../NosCore.Packets.Tests/DeserializerTest.cs | 150 +++++++++--------- test/NosCore.Packets.Tests/SerializerTest.cs | 2 +- 2 files changed, 76 insertions(+), 76 deletions(-) diff --git a/test/NosCore.Packets.Tests/DeserializerTest.cs b/test/NosCore.Packets.Tests/DeserializerTest.cs index ebc9a57..f772a9c 100644 --- a/test/NosCore.Packets.Tests/DeserializerTest.cs +++ b/test/NosCore.Packets.Tests/DeserializerTest.cs @@ -71,9 +71,9 @@ public void AllPacketsAreDeserializable() { var deserializer = new Deserializer(typeof(IPacket).Assembly.GetTypes() .Where(p => p.GetInterfaces().Contains(typeof(IPacket)) && p.IsClass && !p.IsAbstract).ToList()); - Assert.IsTrue(deserializer != null); + Assert.IsNotNull(deserializer); } - + [TestMethod] public void UnresolvedPacketsAreValid() { @@ -82,11 +82,11 @@ public void UnresolvedPacketsAreValid() } [TestMethod] - public void PacketCBListTest() - { - var packet = (CBListPacket)Deserializer.Deserialize("c_blist 0 0 0 0 0 0 0 0 0"); - Assert.AreEqual(0, packet.Index); - Assert.AreEqual(null, packet.ItemVNumFilter); + public void PacketCBListTest() + { + var packet = (CBListPacket)Deserializer.Deserialize("c_blist 0 0 0 0 0 0 0 0 0"); + Assert.AreEqual(0, packet.Index); + Assert.AreEqual(null, packet.ItemVNumFilter); } [TestMethod] @@ -109,9 +109,9 @@ public void PacketEndingWithStringMakeItSerializedToEnd() { var packet = (WhisperPacket)Deserializer.Deserialize("/0Lucifer0 this is a long message"); Assert.AreEqual("0Lucifer0 this is a long message", packet.Message); - } - - + } + + [TestMethod] public void PacketEndingWithParenthesisShouldDeserialize() { @@ -193,14 +193,14 @@ public void PacketEndingWithNullableMakeItOptional() public void DeserializeListSeparator() { var packet = (GidxPacket)Deserializer.Deserialize("gidx 0 1 2 familyname customrank 3 1|1|1|0"); - Assert.IsTrue(packet.VisualType == VisualType.Map); - Assert.IsTrue(packet.VisualId == 1); - Assert.IsTrue(packet.FamilyId == 2); - Assert.IsTrue(packet.FamilyName == "familyname"); - Assert.IsTrue(packet.FamilyCustomRank == "customrank"); - Assert.IsTrue(packet.FamilyLevel == 3); - Assert.IsTrue(packet.FamilyIcons.Count(s => s) == 3); - Assert.IsTrue(packet.FamilyIcons.Count(s => !s) == 1); + Assert.AreEqual(VisualType.Map, packet.VisualType); + Assert.AreEqual(1, packet.VisualId); + Assert.AreEqual(2, packet.FamilyId); + Assert.AreEqual("familyname", packet.FamilyName); + Assert.AreEqual("customrank", packet.FamilyCustomRank); + Assert.AreEqual(3, packet.FamilyLevel); + Assert.AreEqual(3, packet.FamilyIcons.Count(s => s)); + Assert.AreEqual(1, packet.FamilyIcons.Count(s => !s)); } [TestMethod] @@ -215,21 +215,21 @@ public void PacketEndingWithNullableMakeItOptionalWithKeepalive() public void DeserializeSpecial() { var packet = (UseItemPacket)Deserializer.Deserialize("u_i 2 3 4 5 6"); - Assert.IsTrue(packet.Mode == 6); + Assert.AreEqual(6, packet.Mode); } [TestMethod] public void DeserializeSpecialWithKeepalive() { var packet = (UseItemPacket)Deserializer.Deserialize("12345 u_i 2 3 4 5 6"); - Assert.IsTrue(packet.Mode == 6); + Assert.AreEqual(6, packet.Mode); } [TestMethod] public void DeserializeOptionalListPacket() { var packet = (MShopPacket)Deserializer.Deserialize("m_shop 1"); - Assert.IsTrue(packet.Type == CreateShopPacketType.Close); + Assert.AreEqual(CreateShopPacketType.Close, packet.Type); } [TestMethod] @@ -239,12 +239,12 @@ public void DeserializeListSubPacketWithoutSeparator() "m_shop 0 0 20 1 2400 0 21 1 10692 2 0 8 2500 2 3 2 480 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 admin Stand" ); - Assert.IsTrue(packet.Type == 0 - && packet.ItemList![1]!.Type == 0 - && packet.ItemList[1]!.Slot == 21 - && packet.ItemList[1]!.Amount == 1 - && packet.ItemList[1]!.Price == 10692 - && packet.Name == "admin Stand"); + Assert.AreEqual(0, packet.Type); + Assert.AreEqual(0, packet.ItemList![1]!.Type); + Assert.AreEqual(21, packet.ItemList[1]!.Slot); + Assert.AreEqual(1, packet.ItemList[1]!.Amount); + Assert.AreEqual(10692, packet.ItemList[1]!.Price); + Assert.AreEqual("admin Stand", packet.Name); } [TestMethod] @@ -253,9 +253,9 @@ public void DeserializeistSubPacketWithoutSeparator() var packet = (SitPacket)Deserializer.Deserialize( "rest 1 2 3" ); - Assert.IsTrue(packet.Amount == 1 - && packet.Users![0]!.VisualType == VisualType.Npc - && packet.Users[0]!.VisualId == 3); + Assert.AreEqual(1, packet.Amount); + Assert.AreEqual(VisualType.Npc, packet.Users![0]!.VisualType); + Assert.AreEqual(3, packet.Users[0]!.VisualId); } [TestMethod] @@ -264,7 +264,7 @@ public void DeserializeSimpleListWithoutSpaceSeparator() var packet = (StPacket)Deserializer.Deserialize( "st 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16" ); - Assert.IsTrue(packet.BuffIds!.Count == 8); + Assert.AreEqual(8, packet.BuffIds!.Count); } [TestMethod] @@ -273,8 +273,8 @@ public void DeserializeSpecialPacket() var packet = (FinsPacket)Deserializer.Deserialize( "#fins^1^2" ); - Assert.IsTrue(packet.Type == FinsPacketType.Accepted); - Assert.IsTrue(packet.CharacterId == 2); + Assert.AreEqual(FinsPacketType.Accepted, packet.Type); + Assert.AreEqual(2, packet.CharacterId); } [TestMethod] @@ -283,8 +283,8 @@ public void DeserializeSpecialPacketAndKeepaliveId() var packet = (FinsPacket)Deserializer.Deserialize( "123 #fins^1^2" ); - Assert.IsTrue(packet.Type == FinsPacketType.Accepted); - Assert.IsTrue(packet.CharacterId == 2); + Assert.AreEqual(FinsPacketType.Accepted, packet.Type); + Assert.AreEqual(2, packet.CharacterId); } [TestMethod] @@ -293,13 +293,13 @@ public void DeserializeSpecialPacketSubpacket() var packet = (FinfoPacket)Deserializer.Deserialize( "finfo 2.1.Friend1 3.0.Friend2" ); - Assert.IsTrue(packet.FriendList!.Count == 2); - Assert.IsTrue(packet.FriendList.First()!.CharacterId == 2); + Assert.AreEqual(2, packet.FriendList!.Count); + Assert.AreEqual(2, packet.FriendList.First()!.CharacterId); Assert.IsTrue(packet.FriendList.First()!.IsConnected); - Assert.IsTrue(packet.FriendList.First()!.CharacterName == "Friend1"); - Assert.IsTrue(packet.FriendList.Skip(1).First()!.CharacterId == 3); + Assert.AreEqual("Friend1", packet.FriendList.First()!.CharacterName); + Assert.AreEqual(3, packet.FriendList.Skip(1).First()!.CharacterId); Assert.IsFalse(packet.FriendList.Skip(1).First()!.IsConnected); - Assert.IsTrue(packet.FriendList.Skip(1).First()!.CharacterName == "Friend2"); + Assert.AreEqual("Friend2", packet.FriendList.Skip(1).First()!.CharacterName); } [TestMethod] @@ -308,11 +308,11 @@ public void DeserializeListWithAmountIndex() var packet = (SitPacket)Deserializer.Deserialize( "rest 2 1 5 1 4" ); - Assert.IsTrue(packet.Users!.Count == 2); - Assert.IsTrue(packet.Users.First()!.VisualType == VisualType.Player); - Assert.IsTrue(packet.Users.First()!.VisualId == 5); - Assert.IsTrue(packet.Users.Skip(1).First()!.VisualType == VisualType.Player); - Assert.IsTrue(packet.Users.Skip(1).First()!.VisualId == 4); + Assert.AreEqual(2, packet.Users!.Count); + Assert.AreEqual(VisualType.Player, packet.Users.First()!.VisualType); + Assert.AreEqual(5, packet.Users.First()!.VisualId); + Assert.AreEqual(VisualType.Player, packet.Users.Skip(1).First()!.VisualType); + Assert.AreEqual(4, packet.Users.Skip(1).First()!.VisualId); } [TestMethod] @@ -321,11 +321,11 @@ public void DeserializeInjectedSpecialPacket() var packet = (DlgPacket)Deserializer.Deserialize( "dlg #fins^1^2 #fins^2^2 test" ); - Assert.IsTrue(((FinsPacket)packet.YesPacket!).Type == FinsPacketType.Accepted); - Assert.IsTrue(((FinsPacket)packet.YesPacket!).CharacterId == 2); - Assert.IsTrue(((FinsPacket)packet.NoPacket!).Type == FinsPacketType.Rejected); - Assert.IsTrue(((FinsPacket)packet.NoPacket).CharacterId == 2); - Assert.IsTrue(packet.Question == "test"); + Assert.AreEqual(FinsPacketType.Accepted, ((FinsPacket)packet.YesPacket!).Type); + Assert.AreEqual(2, ((FinsPacket)packet.YesPacket!).CharacterId); + Assert.AreEqual(FinsPacketType.Rejected, ((FinsPacket)packet.NoPacket!).Type); + Assert.AreEqual(2, ((FinsPacket)packet.NoPacket).CharacterId); + Assert.AreEqual("test", packet.Question); } @@ -374,7 +374,7 @@ public void DeserializeNullableEnum() var packet = (NrunPacket)Deserializer.Deserialize( "n_run 1" ); - Assert.IsTrue(packet.Runner == NrunRunnerType.ChangeClass); + Assert.AreEqual(NrunRunnerType.ChangeClass, packet.Runner); } [TestMethod] @@ -383,17 +383,17 @@ public void DeserializeWithDoubleSpace() var packet = (NoS0577Packet)Deserializer.Deserialize( "NoS0577 37633936363633662D633332352D346461612D383933612D373031346639653063646463 c437f3f4-06cb-405d-b3c8-73e5c7772c80 0034F3E8 0 0.9.3.3123 0 BC4AE02D9759A1C83532D7B5C861D2D2" ); - Assert.IsTrue(packet.Header == "NoS0577"); - Assert.IsTrue(packet.AuthToken == "37633936363633662D633332352D346461612D383933612D373031346639653063646463"); - Assert.IsTrue(packet.ClientId == Guid.Parse("c437f3f4-06cb-405d-b3c8-73e5c7772c80")); - Assert.IsTrue(packet.UnknownYet == "0034F3E8"); - Assert.IsTrue(packet.ClientVersion!.Major == 0); - Assert.IsTrue(packet.ClientVersion.Minor == 9); - Assert.IsTrue(packet.ClientVersion.Fix == 3); - Assert.IsTrue(packet.RegionType == RegionType.EN); - Assert.IsTrue(packet.ClientVersion.SubFix == 3123); - Assert.IsTrue(packet.UnknownConstant == 0); - Assert.IsTrue(packet.Md5String == "BC4AE02D9759A1C83532D7B5C861D2D2"); + Assert.AreEqual("NoS0577", packet.Header); + Assert.AreEqual("37633936363633662D633332352D346461612D383933612D373031346639653063646463", packet.AuthToken); + Assert.AreEqual(Guid.Parse("c437f3f4-06cb-405d-b3c8-73e5c7772c80"), packet.ClientId); + Assert.AreEqual("0034F3E8", packet.UnknownYet); + Assert.AreEqual(0, packet.ClientVersion!.Major); + Assert.AreEqual(9, packet.ClientVersion.Minor); + Assert.AreEqual(3, packet.ClientVersion.Fix); + Assert.AreEqual(RegionType.EN, packet.RegionType); + Assert.AreEqual(3123, packet.ClientVersion.SubFix); + Assert.AreEqual(0, packet.UnknownConstant); + Assert.AreEqual("BC4AE02D9759A1C83532D7B5C861D2D2", packet.Md5String); } [TestMethod] @@ -402,19 +402,19 @@ public void DeserializeWithGuid() var packet = (NoS0575Packet)Deserializer.Deserialize( "NoS0575 1468578 admin EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF c437f3f4-06cb-405d-b3c8-73e5c7772c80 006548C6 0 0.9.3.3125 0 458E0876581FA9A6EFE00A28AA8E75F2" ); - Assert.IsTrue(packet.Header == "NoS0575"); - Assert.IsTrue(packet.SessionId == 1468578); - Assert.IsTrue(packet.Username == "admin"); - Assert.IsTrue(packet.Password == "EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF"); - Assert.IsTrue(packet.ClientId == Guid.Parse("c437f3f4-06cb-405d-b3c8-73e5c7772c80")); - Assert.IsTrue(packet.UnknownYet == "006548C6"); - Assert.IsTrue(packet.Unknown2 == 0); - Assert.IsTrue(packet.ClientVersion!.Major == 0); - Assert.IsTrue(packet.ClientVersion.Minor == 9); - Assert.IsTrue(packet.ClientVersion.Fix == 3); - Assert.IsTrue(packet.ClientVersion.SubFix == 3125); - Assert.IsTrue(packet.RegionType == RegionType.EN); - Assert.IsTrue(packet.Md5String == "458E0876581FA9A6EFE00A28AA8E75F2"); + Assert.AreEqual("NoS0575", packet.Header); + Assert.AreEqual(1468578, packet.SessionId); + Assert.AreEqual("admin", packet.Username); + Assert.AreEqual("EE26B0DD4AF7E749AA1A8EE3C10AE9923F618980772E473F8819A5D4940E0DB27AC185F8A0E1D5F84F88BC887FD67B143732C304CC5FA9AD8E6F57F50028A8FF", packet.Password); + Assert.AreEqual(Guid.Parse("c437f3f4-06cb-405d-b3c8-73e5c7772c80"), packet.ClientId); + Assert.AreEqual("006548C6", packet.UnknownYet); + Assert.AreEqual(0, packet.Unknown2); + Assert.AreEqual(0, packet.ClientVersion!.Major); + Assert.AreEqual(9, packet.ClientVersion.Minor); + Assert.AreEqual(3, packet.ClientVersion.Fix); + Assert.AreEqual(3125, packet.ClientVersion.SubFix); + Assert.AreEqual(RegionType.EN, packet.RegionType); + Assert.AreEqual("458E0876581FA9A6EFE00A28AA8E75F2", packet.Md5String); } } } diff --git a/test/NosCore.Packets.Tests/SerializerTest.cs b/test/NosCore.Packets.Tests/SerializerTest.cs index b457e21..2fe2c8f 100644 --- a/test/NosCore.Packets.Tests/SerializerTest.cs +++ b/test/NosCore.Packets.Tests/SerializerTest.cs @@ -70,7 +70,7 @@ public void AllPacketsAreSerializable() { var serializer = new Serializer(typeof(IPacket).Assembly.GetTypes() .Where(p => p.GetInterfaces().Contains(typeof(IPacket)) && p.IsClass && !p.IsAbstract).ToList()); - Assert.IsTrue(serializer != null); + Assert.IsNotNull(serializer); } [TestMethod] From 0282d7a90913b64c58859039258eee424f8fb8ca Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Nov 2025 01:16:23 +0000 Subject: [PATCH 05/13] Remove CS1591 warning suppression to enforce XML documentation --- src/NosCore.Packets/NosCore.Packets.csproj | 1 - 1 file changed, 1 deletion(-) diff --git a/src/NosCore.Packets/NosCore.Packets.csproj b/src/NosCore.Packets/NosCore.Packets.csproj index f776000..124bb74 100644 --- a/src/NosCore.Packets/NosCore.Packets.csproj +++ b/src/NosCore.Packets/NosCore.Packets.csproj @@ -22,7 +22,6 @@ true CS1570 true - CS1591 From 59afc87de0d15d08805128dc3ac767868fa461bc Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Nov 2025 01:19:50 +0000 Subject: [PATCH 06/13] Fix build issues: correct typo and restore CS1591 suppression - Fixed typo in test project: TreatWrningsAsErrors -> TreatWarningsAsErrors - Restored CS1591 (missing XML documentation) suppression to prevent build failures The codebase has many public APIs without XML documentation. While CS1591 warnings are useful, adding documentation to all public members is beyond the scope of the .NET 10 upgrade. The suppression allows the build to succeed while maintaining other strict warning-as-error enforcement. --- src/NosCore.Packets/NosCore.Packets.csproj | 1 + test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/NosCore.Packets/NosCore.Packets.csproj b/src/NosCore.Packets/NosCore.Packets.csproj index 124bb74..f776000 100644 --- a/src/NosCore.Packets/NosCore.Packets.csproj +++ b/src/NosCore.Packets/NosCore.Packets.csproj @@ -22,6 +22,7 @@ true CS1570 true + CS1591 diff --git a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj index 5710889..082fa49 100644 --- a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj +++ b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj @@ -4,7 +4,7 @@ net10.0 enable false - true + true From d1f8f79cb4f0b3332f3665a59d99a1e20ab13d16 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Nov 2025 01:23:48 +0000 Subject: [PATCH 07/13] Fix GitHub Actions: upgrade setup-dotnet to v5 for .NET 10 support --- .github/workflows/dotnet.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dotnet.yml b/.github/workflows/dotnet.yml index 287dc4f..00acddf 100644 --- a/.github/workflows/dotnet.yml +++ b/.github/workflows/dotnet.yml @@ -13,9 +13,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: Setup .NET - uses: actions/setup-dotnet@v4 + uses: actions/setup-dotnet@v5 with: - dotnet-version: 10.0.x + dotnet-version: '10.0.x' - name: Check Tag id: check-tag From 5d099f90a0693a9c5ca85df0ab0e87061d91b48a Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 15 Nov 2025 08:42:44 +0000 Subject: [PATCH 08/13] Fix all MSTest analyzer errors and .NET 10 compatibility issues Changes: - Suppress AD0001 analyzer error in Benchmark project (BenchmarkDotNet incompatibility with .NET 10) - Add test parallelization configuration to fix MSTEST0001 error - Fix MSTEST0037 errors by using correct assertion methods: * Assert.IsNull instead of Assert.AreEqual for null checks * Assert.HasCount instead of Assert.AreEqual for collection counts * Assert.IsFalse instead of Assert.AreEqual for boolean checks - Fix MSTEST0017 error by correcting assertion argument order - Fix CS0411 type inference errors by adding explicit type casts Test files updated: - DeserializerTest.cs: 8 assertion method fixes - SerializerTest.cs: 1 assertion method fix - Test project: Added ParallelizeAttribute configuration - Benchmark project: Suppressed analyzer compatibility warning --- .../NosCore.Packets.Benchmark.csproj | 1 + test/NosCore.Packets.Tests/DeserializerTest.cs | 16 ++++++++-------- .../NosCore.Packets.Tests.csproj | 6 ++++++ test/NosCore.Packets.Tests/SerializerTest.cs | 2 +- 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj b/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj index 6c1d403..29c270b 100644 --- a/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj +++ b/test/NosCore.Packets.Benchmark/NosCore.Packets.Benchmark.csproj @@ -5,6 +5,7 @@ net10.0 enable true + AD0001 diff --git a/test/NosCore.Packets.Tests/DeserializerTest.cs b/test/NosCore.Packets.Tests/DeserializerTest.cs index f772a9c..604b5e3 100644 --- a/test/NosCore.Packets.Tests/DeserializerTest.cs +++ b/test/NosCore.Packets.Tests/DeserializerTest.cs @@ -86,7 +86,7 @@ public void PacketCBListTest() { var packet = (CBListPacket)Deserializer.Deserialize("c_blist 0 0 0 0 0 0 0 0 0"); Assert.AreEqual(0, packet.Index); - Assert.AreEqual(null, packet.ItemVNumFilter); + Assert.IsNull(packet.ItemVNumFilter); } [TestMethod] @@ -101,7 +101,7 @@ public void PacketNsTestLogin() { var packet = (NsTestPacket)Deserializer.Deserialize("NsTeST 4 gorlik 2 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 1 3 2 2 7 1 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 31135 79.110.84.132:4016:1:1.7.Feniks 79.110.84.132:4014:1:1.5.Feniks 79.110.84.132:4015:0:1.6.Feniks 79.110.84.132:4011:7:1.2.Feniks 79.110.84.132:4012:1:1.3.Feniks 79.110.84.132:4013:1:1.4.Feniks 79.110.84.132:4010:1:1.1.Feniks -1:-1:-1:10000.10000.1"); Assert.AreEqual("gorlik", packet.AccountName); - Assert.AreEqual(8, packet.SubPacket!.Count); + Assert.HasCount(packet.SubPacket!, 8); } [TestMethod] @@ -178,7 +178,7 @@ public void PacketAreDeserializedWithHeaderAndKeepAliveId() public void DeserializationLastStringCanNotBeNull() { var serializedPacket = (FamilyChatPacket)Deserializer.Deserialize(":"); - Assert.AreEqual(serializedPacket.Message, ""); + Assert.AreEqual("", serializedPacket.Message); } [TestMethod] @@ -239,8 +239,8 @@ public void DeserializeListSubPacketWithoutSeparator() "m_shop 0 0 20 1 2400 0 21 1 10692 2 0 8 2500 2 3 2 480 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 admin Stand" ); - Assert.AreEqual(0, packet.Type); - Assert.AreEqual(0, packet.ItemList![1]!.Type); + Assert.AreEqual((CreateShopPacketType)0, packet.Type); + Assert.AreEqual((byte)0, packet.ItemList![1]!.Type); Assert.AreEqual(21, packet.ItemList[1]!.Slot); Assert.AreEqual(1, packet.ItemList[1]!.Amount); Assert.AreEqual(10692, packet.ItemList[1]!.Price); @@ -264,7 +264,7 @@ public void DeserializeSimpleListWithoutSpaceSeparator() var packet = (StPacket)Deserializer.Deserialize( "st 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16" ); - Assert.AreEqual(8, packet.BuffIds!.Count); + Assert.HasCount(packet.BuffIds!, 8); } [TestMethod] @@ -293,7 +293,7 @@ public void DeserializeSpecialPacketSubpacket() var packet = (FinfoPacket)Deserializer.Deserialize( "finfo 2.1.Friend1 3.0.Friend2" ); - Assert.AreEqual(2, packet.FriendList!.Count); + Assert.HasCount(packet.FriendList!, 2); Assert.AreEqual(2, packet.FriendList.First()!.CharacterId); Assert.IsTrue(packet.FriendList.First()!.IsConnected); Assert.AreEqual("Friend1", packet.FriendList.First()!.CharacterName); @@ -308,7 +308,7 @@ public void DeserializeListWithAmountIndex() var packet = (SitPacket)Deserializer.Deserialize( "rest 2 1 5 1 4" ); - Assert.AreEqual(2, packet.Users!.Count); + Assert.HasCount(packet.Users!, 2); Assert.AreEqual(VisualType.Player, packet.Users.First()!.VisualType); Assert.AreEqual(5, packet.Users.First()!.VisualId); Assert.AreEqual(VisualType.Player, packet.Users.Skip(1).First()!.VisualType); diff --git a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj index 082fa49..9af6cdc 100644 --- a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj +++ b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj @@ -7,6 +7,12 @@ true + + + <_Parameter1>Microsoft.VisualStudio.TestTools.UnitTesting.ExecutionScope.MethodLevel + + + all diff --git a/test/NosCore.Packets.Tests/SerializerTest.cs b/test/NosCore.Packets.Tests/SerializerTest.cs index 2fe2c8f..dc0b504 100644 --- a/test/NosCore.Packets.Tests/SerializerTest.cs +++ b/test/NosCore.Packets.Tests/SerializerTest.cs @@ -201,7 +201,7 @@ public void SerializeRecursiveListSubPackets() public void NullableReferenceInferRequiredAttribute() { var testPacket = new QstlistPacket(null!); - Assert.AreEqual(false, testPacket.IsValid); + Assert.IsFalse(testPacket.IsValid); Assert.AreEqual("The QstlistPacket field is required.", testPacket.ValidationResult.Single().ErrorMessage); } From 4fc0918b11e116b1e9ea1af6b5aed70d744449a8 Mon Sep 17 00:00:00 2001 From: Claude Date: Tue, 18 Nov 2025 22:17:17 +0000 Subject: [PATCH 09/13] Fix ParallelizeAttribute configuration - suppress MSTEST0001 instead The assembly-level ParallelizeAttribute configuration was causing a build error. Simplified by suppressing MSTEST0001 analyzer warning instead, which is a recommendation rather than a critical requirement. --- test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj index 9af6cdc..ff0eced 100644 --- a/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj +++ b/test/NosCore.Packets.Tests/NosCore.Packets.Tests.csproj @@ -5,14 +5,9 @@ enable false true + MSTEST0001 - - - <_Parameter1>Microsoft.VisualStudio.TestTools.UnitTesting.ExecutionScope.MethodLevel - - - all From 093d838c086e4bd367d598b74c3baa0263653226 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 19 Nov 2025 06:32:34 +0000 Subject: [PATCH 10/13] Fix Assert.HasCount argument order and type cast issues - Corrected Assert.HasCount calls - signature is (expectedCount, collection) not (collection, count) - Fixed type cast on line 242: CreateShopPacketType to byte - Added null-forgiving operators to fix CS8604 warnings on .First() calls --- .../NosCore.Packets.Tests/DeserializerTest.cs | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/test/NosCore.Packets.Tests/DeserializerTest.cs b/test/NosCore.Packets.Tests/DeserializerTest.cs index 604b5e3..a25689b 100644 --- a/test/NosCore.Packets.Tests/DeserializerTest.cs +++ b/test/NosCore.Packets.Tests/DeserializerTest.cs @@ -101,7 +101,7 @@ public void PacketNsTestLogin() { var packet = (NsTestPacket)Deserializer.Deserialize("NsTeST 4 gorlik 2 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 1 3 2 2 7 1 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 -99 0 31135 79.110.84.132:4016:1:1.7.Feniks 79.110.84.132:4014:1:1.5.Feniks 79.110.84.132:4015:0:1.6.Feniks 79.110.84.132:4011:7:1.2.Feniks 79.110.84.132:4012:1:1.3.Feniks 79.110.84.132:4013:1:1.4.Feniks 79.110.84.132:4010:1:1.1.Feniks -1:-1:-1:10000.10000.1"); Assert.AreEqual("gorlik", packet.AccountName); - Assert.HasCount(packet.SubPacket!, 8); + Assert.HasCount(8, packet.SubPacket!); } [TestMethod] @@ -239,7 +239,7 @@ public void DeserializeListSubPacketWithoutSeparator() "m_shop 0 0 20 1 2400 0 21 1 10692 2 0 8 2500 2 3 2 480 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 admin Stand" ); - Assert.AreEqual((CreateShopPacketType)0, packet.Type); + Assert.AreEqual((byte)0, packet.Type); Assert.AreEqual((byte)0, packet.ItemList![1]!.Type); Assert.AreEqual(21, packet.ItemList[1]!.Slot); Assert.AreEqual(1, packet.ItemList[1]!.Amount); @@ -264,7 +264,7 @@ public void DeserializeSimpleListWithoutSpaceSeparator() var packet = (StPacket)Deserializer.Deserialize( "st 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16" ); - Assert.HasCount(packet.BuffIds!, 8); + Assert.HasCount(8, packet.BuffIds!); } [TestMethod] @@ -293,13 +293,13 @@ public void DeserializeSpecialPacketSubpacket() var packet = (FinfoPacket)Deserializer.Deserialize( "finfo 2.1.Friend1 3.0.Friend2" ); - Assert.HasCount(packet.FriendList!, 2); - Assert.AreEqual(2, packet.FriendList.First()!.CharacterId); - Assert.IsTrue(packet.FriendList.First()!.IsConnected); - Assert.AreEqual("Friend1", packet.FriendList.First()!.CharacterName); - Assert.AreEqual(3, packet.FriendList.Skip(1).First()!.CharacterId); - Assert.IsFalse(packet.FriendList.Skip(1).First()!.IsConnected); - Assert.AreEqual("Friend2", packet.FriendList.Skip(1).First()!.CharacterName); + Assert.HasCount(2, packet.FriendList!); + Assert.AreEqual(2, packet.FriendList!.First()!.CharacterId); + Assert.IsTrue(packet.FriendList!.First()!.IsConnected); + Assert.AreEqual("Friend1", packet.FriendList!.First()!.CharacterName); + Assert.AreEqual(3, packet.FriendList!.Skip(1).First()!.CharacterId); + Assert.IsFalse(packet.FriendList!.Skip(1).First()!.IsConnected); + Assert.AreEqual("Friend2", packet.FriendList!.Skip(1).First()!.CharacterName); } [TestMethod] @@ -308,11 +308,11 @@ public void DeserializeListWithAmountIndex() var packet = (SitPacket)Deserializer.Deserialize( "rest 2 1 5 1 4" ); - Assert.HasCount(packet.Users!, 2); - Assert.AreEqual(VisualType.Player, packet.Users.First()!.VisualType); - Assert.AreEqual(5, packet.Users.First()!.VisualId); - Assert.AreEqual(VisualType.Player, packet.Users.Skip(1).First()!.VisualType); - Assert.AreEqual(4, packet.Users.Skip(1).First()!.VisualId); + Assert.HasCount(2, packet.Users!); + Assert.AreEqual(VisualType.Player, packet.Users!.First()!.VisualType); + Assert.AreEqual(5, packet.Users!.First()!.VisualId); + Assert.AreEqual(VisualType.Player, packet.Users!.Skip(1).First()!.VisualType); + Assert.AreEqual(4, packet.Users!.Skip(1).First()!.VisualId); } [TestMethod] From b2dcd16f5669da35350cbe87f3b0f3509ed7e025 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 19 Nov 2025 06:37:18 +0000 Subject: [PATCH 11/13] Fix CS0411 type inference errors by specifying type arguments explicitly Changed Assert.AreEqual((byte)0, value) to Assert.AreEqual(0, value) to help the compiler infer the correct type for the assertion on lines 242-243. --- test/NosCore.Packets.Tests/DeserializerTest.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/NosCore.Packets.Tests/DeserializerTest.cs b/test/NosCore.Packets.Tests/DeserializerTest.cs index a25689b..07de7df 100644 --- a/test/NosCore.Packets.Tests/DeserializerTest.cs +++ b/test/NosCore.Packets.Tests/DeserializerTest.cs @@ -239,8 +239,8 @@ public void DeserializeListSubPacketWithoutSeparator() "m_shop 0 0 20 1 2400 0 21 1 10692 2 0 8 2500 2 3 2 480 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 admin Stand" ); - Assert.AreEqual((byte)0, packet.Type); - Assert.AreEqual((byte)0, packet.ItemList![1]!.Type); + Assert.AreEqual(0, packet.Type); + Assert.AreEqual(0, packet.ItemList![1]!.Type); Assert.AreEqual(21, packet.ItemList[1]!.Slot); Assert.AreEqual(1, packet.ItemList[1]!.Amount); Assert.AreEqual(10692, packet.ItemList[1]!.Price); From 81467785c7cf0faa8a9432c0890e7e0bcf428808 Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 19 Nov 2025 06:39:57 +0000 Subject: [PATCH 12/13] Fix enum type assertions - use correct enum values instead of byte casts --- test/NosCore.Packets.Tests/DeserializerTest.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/NosCore.Packets.Tests/DeserializerTest.cs b/test/NosCore.Packets.Tests/DeserializerTest.cs index 07de7df..809cb40 100644 --- a/test/NosCore.Packets.Tests/DeserializerTest.cs +++ b/test/NosCore.Packets.Tests/DeserializerTest.cs @@ -239,8 +239,8 @@ public void DeserializeListSubPacketWithoutSeparator() "m_shop 0 0 20 1 2400 0 21 1 10692 2 0 8 2500 2 3 2 480 0 0 0 0 0 0 0 0 0 0 0 0 0 0" + " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 admin Stand" ); - Assert.AreEqual(0, packet.Type); - Assert.AreEqual(0, packet.ItemList![1]!.Type); + Assert.AreEqual(CreateShopPacketType.Open, packet.Type); + Assert.AreEqual(PocketType.Main, packet.ItemList![1]!.Type); Assert.AreEqual(21, packet.ItemList[1]!.Slot); Assert.AreEqual(1, packet.ItemList[1]!.Amount); Assert.AreEqual(10692, packet.ItemList[1]!.Price); From 1685a659f47bdcbeaf0e045f3a00eff9de476a4e Mon Sep 17 00:00:00 2001 From: Claude Date: Wed, 19 Nov 2025 06:46:01 +0000 Subject: [PATCH 13/13] Fix PocketType assertion - expect Equipment instead of Main --- test/NosCore.Packets.Tests/DeserializerTest.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/NosCore.Packets.Tests/DeserializerTest.cs b/test/NosCore.Packets.Tests/DeserializerTest.cs index 809cb40..f438ab3 100644 --- a/test/NosCore.Packets.Tests/DeserializerTest.cs +++ b/test/NosCore.Packets.Tests/DeserializerTest.cs @@ -240,7 +240,7 @@ public void DeserializeListSubPacketWithoutSeparator() " 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 admin Stand" ); Assert.AreEqual(CreateShopPacketType.Open, packet.Type); - Assert.AreEqual(PocketType.Main, packet.ItemList![1]!.Type); + Assert.AreEqual(PocketType.Equipment, packet.ItemList![1]!.Type); Assert.AreEqual(21, packet.ItemList[1]!.Slot); Assert.AreEqual(1, packet.ItemList[1]!.Amount); Assert.AreEqual(10692, packet.ItemList[1]!.Price);