|
2 | 2 | #include <catch.hpp> |
3 | 3 | #include <pe/core/rtti/RTTI2.hpp> |
4 | 4 |
|
5 | | -using namespace pe::core::rtti; |
| 5 | +namespace rtti2 = pe::core::rtti::RTTI2; |
6 | 6 |
|
7 | 7 | struct TestAttr {} constexpr testAttr; |
8 | 8 |
|
9 | | -struct TestClass : public virtual RTTI2::RTTIBase { |
10 | | - TestClass() : RTTI2::RTTIBase(RTTI2::TypeManager::get().registerOrGetType<TestClass>()) {} |
| 9 | +struct TestClass : public virtual rtti2::RTTIBase { |
| 10 | + TestClass() : rtti2::RTTIBase(rtti2::TypeManager::get().registerOrGetType<TestClass>()) {} |
11 | 11 | }; |
12 | | -template <> struct RTTI2::RTTIinfo<TestClass> { |
13 | | - constexpr static auto info = List(testAttr, testAttr, RTTI2::ClassName{ "testname" }); |
| 12 | +template <> struct rtti2::RTTIinfo<TestClass> { |
| 13 | + constexpr static auto info = List(testAttr, testAttr, rtti2::ClassName{ "testname" }); |
14 | 14 | }; |
15 | 15 |
|
16 | | -TEST_CASE("RTTI2 simple attribute", "[RTTI2]") { |
| 16 | +TEST_CASE("rtti2 simple attribute", "[rtti2]") { |
17 | 17 | TestClass tc{}; |
18 | 18 | CHECK(tc.typeInfo().id != std::type_index{ typeid(void) }); |
19 | 19 | auto ta = tc.typeInfo().get<TestAttr>(); |
20 | 20 | CHECK(ta); |
21 | 21 | CHECK(ta->size() == 2); |
22 | 22 | CHECK(tc.typeInfo().get<int>() == nullptr); |
23 | | - auto x = tc.typeInfo().get<RTTI2::ClassName>(); |
| 23 | + auto x = tc.typeInfo().get<rtti2::ClassName>(); |
24 | 24 | CHECK(x); |
25 | 25 | CHECK(std::string("testname") == x->name); |
26 | 26 | } |
27 | 27 |
|
28 | 28 | struct TestAttrUniq {} constexpr testAttrUniq; |
29 | | -template <> struct RTTI2::AttrType<TestAttrUniq> { |
30 | | - using type = RTTI2::UniqueAttribute<TestAttrUniq>; |
| 29 | +template <> struct rtti2::AttrType<TestAttrUniq> { |
| 30 | + using type = rtti2::UniqueAttribute<TestAttrUniq>; |
31 | 31 | }; |
32 | | -struct TestClass2 : public virtual RTTI2::RTTIBase { |
33 | | - TestClass2() : RTTI2::RTTIBase(RTTI2::TypeManager::get().registerOrGetType<TestClass2>()) {} |
| 32 | +struct TestClass2 : public virtual rtti2::RTTIBase { |
| 33 | + TestClass2() : rtti2::RTTIBase(rtti2::TypeManager::get().registerOrGetType<TestClass2>()) {} |
34 | 34 | }; |
35 | | -template <> struct RTTI2::RTTIinfo<TestClass2> { |
| 35 | +template <> struct rtti2::RTTIinfo<TestClass2> { |
36 | 36 | constexpr static auto info = List(testAttrUniq, testAttrUniq); |
37 | 37 | }; |
38 | 38 |
|
39 | | -TEST_CASE("RTTI2 uniq attribute", "[RTTI2]") |
| 39 | +TEST_CASE("rtti2 uniq attribute", "[rtti2]") |
40 | 40 | { |
41 | 41 | REQUIRE_THROWS(TestClass2{}); |
42 | 42 | } |
43 | 43 |
|
44 | 44 | struct TestAttrBase { const char* foo; }; |
45 | | -template <> struct RTTI2::AttrType<TestAttrBase> { |
46 | | - using type = RTTI2::DerivedAttribute<TestAttrBase>; |
| 45 | +template <> struct rtti2::AttrType<TestAttrBase> { |
| 46 | + using type = rtti2::DerivedAttribute<TestAttrBase>; |
47 | 47 | }; |
48 | 48 | struct TestAttrDerived : TestAttrBase {}; |
49 | | -template <> struct RTTI2::AttrType<TestAttrDerived> { |
50 | | - using type = RTTI2::DerivedAttribute<TestAttrBase>; |
| 49 | +template <> struct rtti2::AttrType<TestAttrDerived> { |
| 50 | + using type = rtti2::DerivedAttribute<TestAttrBase>; |
51 | 51 | }; |
52 | 52 |
|
53 | | -struct TestClassA : public virtual RTTI2::RTTIBase { |
54 | | - TestClassA() : RTTI2::RTTIBase(RTTI2::TypeManager::get().registerOrGetType<TestClassA>()) {} |
| 53 | +struct TestClassA : public virtual rtti2::RTTIBase { |
| 54 | + TestClassA() : rtti2::RTTIBase(rtti2::TypeManager::get().registerOrGetType<TestClassA>()) {} |
55 | 55 | }; |
56 | | -template <> struct RTTI2::RTTIinfo<TestClassA> { |
| 56 | +template <> struct rtti2::RTTIinfo<TestClassA> { |
57 | 57 | constexpr static auto info = List(TestAttrDerived{ "foo" }); |
58 | 58 | }; |
59 | 59 |
|
60 | | -struct TestClassB : public virtual RTTI2::RTTIBase, public TestClassA { |
61 | | - TestClassB() : RTTI2::RTTIBase(RTTI2::TypeManager::get().registerOrGetType<TestClassB>()) {} |
| 60 | +struct TestClassB : public virtual rtti2::RTTIBase, public TestClassA { |
| 61 | + TestClassB() : rtti2::RTTIBase(rtti2::TypeManager::get().registerOrGetType<TestClassB>()) {} |
62 | 62 | }; |
63 | | -template <> struct RTTI2::RTTIinfo<TestClassB> { |
64 | | - constexpr static auto info = List(RTTI2::baseclass<TestClassA>{}); |
| 63 | +template <> struct rtti2::RTTIinfo<TestClassB> { |
| 64 | + constexpr static auto info = List(rtti2::baseclass<TestClassA>{}); |
65 | 65 | }; |
66 | 66 |
|
67 | | -TEST_CASE("RTTI2 derived", "[RTTI2]") { |
| 67 | +TEST_CASE("rtti2 derived", "[rtti2]") { |
68 | 68 | TestClassA tca{}; |
69 | 69 | auto attr = tca.typeInfo().get<TestAttrBase>(); |
70 | 70 | CHECK(attr); |
71 | 71 | CHECK(std::string("foo") == attr->at(0)->foo); |
72 | 72 | TestClassB tcb{}; |
73 | 73 | CHECK(tcb.typeInfo().bases[0].get().id == tca.typeInfo().id); |
74 | | - CHECK(RTTI2::isSame<TestClassA>(tca.typeInfo())); |
75 | | - CHECK(RTTI2::isDerived<TestClassA>(tcb.typeInfo())); |
| 74 | + CHECK(rtti2::isSame<TestClassA>(tca.typeInfo())); |
| 75 | + CHECK(rtti2::isDerived<TestClassA>(tcb.typeInfo())); |
76 | 76 | } |
0 commit comments