9
9
#include " ../../common/config.h"
10
10
11
11
struct clazz {
12
- int i{0 };
13
- char j{1 };
12
+ int i{2 };
13
+ char j{' c ' };
14
14
15
- void f (int ) {}
16
- void g (char ) {}
15
+ int f (int ) const {
16
+ return i;
17
+ }
18
+
19
+ char g (char ) const {
20
+ return j;
21
+ }
17
22
};
18
23
19
24
struct MetaCustom : ::testing::Test {
@@ -24,10 +29,10 @@ struct MetaCustom: ::testing::Test {
24
29
.type (" clazz" _hs)
25
30
.custom <char >(' c' )
26
31
.data <&clazz::i>(" i" _hs)
27
- .custom <int >(2 )
32
+ .custom <int >(0 )
28
33
.data <&clazz::j>(" j" _hs)
29
34
.func <&clazz::f>(" f" _hs)
30
- .custom <int >(3 )
35
+ .custom <int >(1 )
31
36
.func <&clazz::g>(" g" _hs);
32
37
}
33
38
@@ -73,9 +78,17 @@ TEST_F(MetaCustom, Type) {
73
78
TEST_F (MetaCustom, Data) {
74
79
using namespace entt ::literals;
75
80
81
+ const clazz instance{};
82
+
83
+ ASSERT_TRUE (entt::resolve<clazz>().data (" i" _hs));
84
+ ASSERT_EQ (entt::resolve<clazz>().get (" i" _hs, instance).cast <int >(), 2 );
85
+
86
+ ASSERT_TRUE (entt::resolve<clazz>().data (" j" _hs));
87
+ ASSERT_EQ (entt::resolve<clazz>().get (" j" _hs, instance).cast <char >(), ' c' );
88
+
76
89
ASSERT_NE (static_cast <const int *>(entt::resolve<clazz>().data (" i" _hs).custom ()), nullptr );
77
- ASSERT_EQ (*static_cast <const int *>(entt::resolve<clazz>().data (" i" _hs).custom ()), 2 );
78
- ASSERT_EQ (static_cast <const int &>(entt::resolve<clazz>().data (" i" _hs).custom ()), 2 );
90
+ ASSERT_EQ (*static_cast <const int *>(entt::resolve<clazz>().data (" i" _hs).custom ()), 0 );
91
+ ASSERT_EQ (static_cast <const int &>(entt::resolve<clazz>().data (" i" _hs).custom ()), 0 );
79
92
80
93
ASSERT_EQ (static_cast <const char *>(entt::resolve<clazz>().data (" i" _hs).custom ()), nullptr );
81
94
ASSERT_EQ (static_cast <const int *>(entt::resolve<clazz>().data (" j" _hs).custom ()), nullptr );
@@ -84,9 +97,17 @@ TEST_F(MetaCustom, Data) {
84
97
TEST_F (MetaCustom, Func) {
85
98
using namespace entt ::literals;
86
99
100
+ const clazz instance{};
101
+
102
+ ASSERT_TRUE (entt::resolve<clazz>().func (" f" _hs));
103
+ ASSERT_EQ (entt::resolve<clazz>().invoke (" f" _hs, instance, 0 ).cast <int >(), 2 );
104
+
105
+ ASSERT_TRUE (entt::resolve<clazz>().func (" g" _hs));
106
+ ASSERT_EQ (entt::resolve<clazz>().invoke (" g" _hs, instance, ' c' ).cast <char >(), ' c' );
107
+
87
108
ASSERT_NE (static_cast <const int *>(entt::resolve<clazz>().func (" f" _hs).custom ()), nullptr );
88
- ASSERT_EQ (*static_cast <const int *>(entt::resolve<clazz>().func (" f" _hs).custom ()), 3 );
89
- ASSERT_EQ (static_cast <const int &>(entt::resolve<clazz>().func (" f" _hs).custom ()), 3 );
109
+ ASSERT_EQ (*static_cast <const int *>(entt::resolve<clazz>().func (" f" _hs).custom ()), 1 );
110
+ ASSERT_EQ (static_cast <const int &>(entt::resolve<clazz>().func (" f" _hs).custom ()), 1 );
90
111
91
112
ASSERT_EQ (static_cast <const char *>(entt::resolve<clazz>().func (" f" _hs).custom ()), nullptr );
92
113
ASSERT_EQ (static_cast <const int *>(entt::resolve<clazz>().func (" g" _hs).custom ()), nullptr );
0 commit comments