JceTest.cpp 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include "pch.h"
  2. #include <catch.hpp>
  3. #include <Jce.h>
  4. #include <Wup.h>
  5. #include <natStream.h>
  6. using namespace NatsuLib;
  7. using namespace YumeBot;
  8. TEST_CASE("Jce", "[Jce]")
  9. {
  10. using namespace Jce;
  11. SECTION("Serialization")
  12. {
  13. const auto test = make_ref<JceTest>();
  14. test->SetTestFloat(2.0f);
  15. test->SetTestInt(233);
  16. test->GetTestMap()[1] = 2.0f;
  17. test->GetTestMap()[3] = 5.0f;
  18. const auto memoryStream = make_ref<natMemoryStream>(0, true, true, true);
  19. {
  20. JceOutputStream outputStream{ make_ref<natBinaryWriter>(memoryStream) };
  21. outputStream.Write(0, test);
  22. }
  23. memoryStream->SetPositionFromBegin(0);
  24. natRefPointer<JceTest> ptr;
  25. {
  26. JceInputStream inputStream{ make_ref<natBinaryReader>(memoryStream) };
  27. const auto readSucceed = inputStream.Read(0, ptr);
  28. REQUIRE(readSucceed);
  29. }
  30. CHECK(ptr->GetTestFloat() == test->GetTestFloat());
  31. CHECK(ptr->GetTestInt() == test->GetTestInt());
  32. CHECK(ptr->GetTestMap() == test->GetTestMap());
  33. CHECK(ptr->GetTestList() == std::vector{ 1.0, 2.0, 3.0 });
  34. }
  35. SECTION("Wup.UniPacket")
  36. {
  37. using namespace Wup;
  38. OldUniAttribute uniAttribute{};
  39. uniAttribute.Put(u8"SomeInt"_ns, 1);
  40. uniAttribute.Put(u8"SomeFloat"_ns, 1.0f);
  41. const auto memoryStream = make_ref<natMemoryStream>(0, true, true, true);
  42. uniAttribute.Encode(make_ref<natBinaryWriter>(memoryStream));
  43. memoryStream->SetPositionFromBegin(0);
  44. {
  45. OldUniAttribute readAttribute{};
  46. readAttribute.Decode(make_ref<natBinaryReader>(memoryStream));
  47. CHECK(uniAttribute.Get<std::int32_t>(u8"SomeInt"_ns) == readAttribute.Get<std::int32_t>(u8"SomeInt"_ns));
  48. CHECK(uniAttribute.Get<float>(u8"SomeFloat"_ns) == readAttribute.Get<float>(u8"SomeFloat"_ns));
  49. }
  50. }
  51. }