Skip to content

Commit e802f39

Browse files
committed
Add serialiser tests
1 parent 71bdafb commit e802f39

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

libraries/core/tests/serialisation/binary_roundtrip.tests.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1+
#include "morpheus/core/conformance/value_types.hpp"
12
#include "morpheus/core/serialisation/adapters/aggregate.hpp"
3+
#include "morpheus/core/serialisation/adapters/std/bitset.hpp"
24
#include "morpheus/core/serialisation/adapters/std/chrono.hpp"
5+
#include "morpheus/core/serialisation/adapters/std/indirect.hpp"
36
#include "morpheus/core/serialisation/adapters/std/monostate.hpp"
47
#include "morpheus/core/serialisation/adapters/std/optional.hpp"
58
#include "morpheus/core/serialisation/adapters/std/pair.hpp"
@@ -14,6 +17,7 @@
1417

1518
#include <catch2/catch_test_macros.hpp>
1619

20+
#include <bitset>
1721
#include <chrono>
1822
#include <memory>
1923
#include <optional>
@@ -42,6 +46,8 @@ TEST_CASE("Binary serialisation can roundtrip standard library types to binary a
4246
REQUIRE(roundtrip(std::chrono::years{100}) == std::chrono::years{100});
4347
REQUIRE(roundtrip(std::chrono::months{12}) == std::chrono::months{12});
4448
}
49+
REQUIRE(roundtrip(std::bitset<4>{"1101"}) == std::bitset<4>{"1101"});
50+
REQUIRE(roundtrip(conf::vt::indirect<int>{42}) == conf::vt::indirect<int>{42});
4551
REQUIRE(roundtrip(std::monostate{}) == std::monostate{});
4652
REQUIRE(roundtrip(std::optional<int>{100}) == std::optional<int>{100});
4753
REQUIRE(roundtrip(std::optional<int>{}) == std::optional<int>{});

libraries/core/tests/serialisation/json_reader.tests.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
#include "morpheus/core/conformance/format.hpp"
2+
#include "morpheus/core/conformance/value_types.hpp"
23
#include "morpheus/core/serialisation/adapters/aggregate.hpp"
34
#include "morpheus/core/serialisation/adapters/hex.hpp"
45
#include "morpheus/core/serialisation/adapters/std/array.hpp"
6+
#include "morpheus/core/serialisation/adapters/std/bitset.hpp"
57
#include "morpheus/core/serialisation/adapters/std/chrono.hpp"
8+
#include "morpheus/core/serialisation/adapters/std/indirect.hpp"
69
#include "morpheus/core/serialisation/adapters/std/monostate.hpp"
710
#include "morpheus/core/serialisation/adapters/std/optional.hpp"
811
#include "morpheus/core/serialisation/adapters/std/pair.hpp"
@@ -24,6 +27,7 @@
2427
#include <catch2/matchers/catch_matchers_string.hpp>
2528

2629
#include <array>
30+
#include <bitset>
2731
#include <chrono>
2832
#include <cmath>
2933
#include <compare>
@@ -571,6 +575,8 @@ TEST_CASE("Json reader can read std types from underlying text representation",
571575
REQUIRE(test::deserialise<std::chrono::years>(R"("100y")") == std::chrono::years{100});
572576
REQUIRE(test::deserialise<std::chrono::months>(R"("12m")") == std::chrono::months{12});
573577
}
578+
REQUIRE(test::deserialise<std::bitset<4>>(R"("1101")") == std::bitset<4>("1101"));
579+
REQUIRE(test::deserialise<conf::vt::indirect<int>>(R"("42")") == conf::vt::indirect<int>(42));
574580
REQUIRE(test::deserialise<std::monostate>(R"({})") == std::monostate{});
575581
REQUIRE(test::deserialise<std::optional<int>>(R"(100)") == std::optional<int>{100});
576582
REQUIRE(test::deserialise<std::optional<int>>(R"(null)") == std::optional<int>{});

libraries/core/tests/serialisation/json_writer.tests.cpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
#include "morpheus/core/conformance/format.hpp"
22
#include "morpheus/core/serialisation/adapters/aggregate.hpp"
33
#include "morpheus/core/serialisation/adapters/hex.hpp"
4+
#include "morpheus/core/serialisation/adapters/std/bitset.hpp"
45
#include "morpheus/core/serialisation/adapters/std/chrono.hpp"
6+
#include "morpheus/core/serialisation/adapters/std/indirect.hpp"
57
#include "morpheus/core/serialisation/adapters/std/monostate.hpp"
68
#include "morpheus/core/serialisation/adapters/std/optional.hpp"
79
#include "morpheus/core/serialisation/adapters/std/pair.hpp"
@@ -18,6 +20,7 @@
1820
#include <catch2/catch_test_macros.hpp>
1921
#include <catch2/catch_tostring.hpp>
2022

23+
#include <bitset>
2124
#include <charconv> // IWYU pragma: keep
2225
#include <chrono>
2326
#include <cstdint>
@@ -409,6 +412,8 @@ TEST_CASE("Json writer can write std types to underlying text representation", "
409412
REQUIRE(test::serialise(std::chrono::years{100}) == R"("100y")");
410413
REQUIRE(test::serialise(std::chrono::months{12}) == R"("12m")");
411414
}
415+
REQUIRE(test::serialise(std::bitset<4>("1101")) == R"("1101")");
416+
REQUIRE(test::serialise(conf::vt::indirect<int>(42)) == R"("42")");
412417
REQUIRE(test::serialise(std::monostate{}) == R"({})");
413418
REQUIRE(test::serialise(std::optional<int>{100}) == R"(100)");
414419
REQUIRE(test::serialise(std::optional<int>{}) == R"(null)");

0 commit comments

Comments
 (0)