diff --git a/Code/Framework/AzNetworking/Tests/Serialization/DeltaSerializerTests.cpp b/Code/Framework/AzNetworking/Tests/Serialization/DeltaSerializerTests.cpp index dbb07f147d..3f6ea283a3 100644 --- a/Code/Framework/AzNetworking/Tests/Serialization/DeltaSerializerTests.cpp +++ b/Code/Framework/AzNetworking/Tests/Serialization/DeltaSerializerTests.cpp @@ -89,6 +89,22 @@ namespace UnitTest return true; } + + // This logic is modeled after NetworkInputArray serialization in the Multiplayer Gem + bool SerializeNoDelta(AzNetworking::ISerializer& serializer) + { + + + for (uint32_t i = 0; i < m_container.size(); ++i) + { + if(!m_container[i].Serialize(serializer)) + { + return false; + } + } + + return true; + } }; class DeltaSerializerTests @@ -171,6 +187,22 @@ namespace UnitTest EXPECT_TRUE(createSerializer.EndObject("CreateSerializer", "End")); } + TEST_F(DeltaSerializerTests, DeltaArraySize) + { + DeltaDataContainer deltaContainer = TestDeltaContainer(); + DeltaDataContainer noDeltaContainer = TestDeltaContainer(); + + AZStd::array deltaBuffer; + AzNetworking::NetworkInputSerializer deltaSerializer(deltaBuffer.data(), static_cast(deltaBuffer.size())); + AZStd::array noDeltaBuffer; + AzNetworking::NetworkInputSerializer noDeltaSerializer(noDeltaBuffer.data(), static_cast(noDeltaBuffer.size())); + + EXPECT_TRUE(deltaContainer.Serialize(deltaSerializer)); + EXPECT_FALSE(noDeltaContainer.SerializeNoDelta(noDeltaSerializer)); // Should run out of space + EXPECT_EQ(noDeltaSerializer.GetCapacity(), noDeltaSerializer.GetSize()); // Verify that the serializer filled up + EXPECT_FALSE(noDeltaSerializer.IsValid()); // and that it is no longer valid due to lack of space + } + TEST_F(DeltaSerializerTests, DeltaSerializerApplyUnused) { // Every function here should return a constant value regardless of inputs