@@ -39,10 +39,92 @@ TEST_F(ArenaRefTestAndroid, ConstructFromEnvAndObject) {
39
39
Local<String> string = env.NewStringUtf (" hello world" );
40
40
41
41
ArenaRef arena_ref (env, string);
42
+ EXPECT_TRUE (arena_ref.get (env).Equals (env, string));
43
+ }
44
+
45
+ TEST_F (ArenaRefTestAndroid, CopyConstructor) {
46
+ Env env;
47
+
48
+ ArenaRef arena_ref1;
49
+ ArenaRef arena_ref2 (arena_ref1);
50
+ EXPECT_EQ (arena_ref2.get (env).get (), nullptr );
51
+
52
+ Local<String> string = env.NewStringUtf (" hello world" );
53
+
54
+ ArenaRef arena_ref3 (env, string);
55
+ ArenaRef arena_ref4 (arena_ref3);
56
+ ArenaRef arena_ref5 = arena_ref3;
57
+
58
+ EXPECT_TRUE (arena_ref3.get (env).Equals (env, string));
59
+ EXPECT_TRUE (arena_ref4.get (env).Equals (env, string));
60
+ EXPECT_TRUE (arena_ref5.get (env).Equals (env, string));
61
+ }
62
+
63
+ TEST_F (ArenaRefTestAndroid, CopyAssignmentOp) {
64
+ Env env;
65
+
66
+ ArenaRef arena_ref1, arena_ref2;
67
+ arena_ref2 = arena_ref1;
68
+ EXPECT_EQ (arena_ref1.get (env).get (), nullptr );
69
+ EXPECT_EQ (arena_ref2.get (env).get (), nullptr );
70
+
71
+ Local<String> string1 = env.NewStringUtf (" hello world" );
72
+ Local<String> string2 = env.NewStringUtf (" hello earth" );
73
+
74
+ ArenaRef arena_ref3 (env, string1);
75
+ ArenaRef arena_ref4 (env, string2);
76
+ arena_ref4 = arena_ref3;
77
+ arena_ref3 = arena_ref3;
78
+
79
+ EXPECT_TRUE (arena_ref3.get (env).Equals (env, string1));
80
+ EXPECT_TRUE (arena_ref4.get (env).Equals (env, string1));
81
+
82
+ arena_ref3 = arena_ref1;
83
+ EXPECT_EQ (arena_ref3.get (env).get (), nullptr );
84
+ EXPECT_TRUE (arena_ref4.get (env).Equals (env, string1));
85
+ }
86
+
87
+ TEST_F (ArenaRefTestAndroid, MoveConstructor) {
88
+ Env env;
89
+
90
+ ArenaRef arena_ref1;
91
+ ArenaRef arena_ref2 (std::move (arena_ref1));
92
+ EXPECT_EQ (arena_ref1.get (env).get (), nullptr );
93
+ EXPECT_EQ (arena_ref2.get (env).get (), nullptr );
94
+
95
+ Local<String> string = env.NewStringUtf (" hello world" );
96
+
97
+ ArenaRef arena_ref3 (env, string);
98
+ ArenaRef arena_ref4 (std::move (arena_ref3));
99
+ EXPECT_EQ (arena_ref3.get (env).get (), nullptr );
100
+ EXPECT_TRUE (arena_ref4.get (env).Equals (env, string));
101
+
102
+ ArenaRef arena_ref5 = std::move (arena_ref4);
103
+ EXPECT_TRUE (arena_ref5.get (env).Equals (env, string));
104
+ }
105
+
106
+ TEST_F (ArenaRefTestAndroid, MoveAssignmentOp) {
107
+ Env env;
108
+
109
+ ArenaRef arena_ref1, arena_ref2;
110
+ arena_ref2 = std::move (arena_ref1);
111
+ EXPECT_EQ (arena_ref1.get (env).get (), nullptr );
112
+ EXPECT_EQ (arena_ref2.get (env).get (), nullptr );
113
+
114
+ Local<String> string1 = env.NewStringUtf (" hello world" );
115
+ Local<String> string2 = env.NewStringUtf (" hello earth" );
116
+
117
+ ArenaRef arena_ref3 (env, string1);
118
+ arena_ref3 = std::move (arena_ref3);
119
+ EXPECT_TRUE (arena_ref3.get (env).Equals (env, string1));
120
+
121
+ ArenaRef arena_ref4 (env, string2);
122
+ arena_ref4 = std::move (arena_ref3);
123
+ EXPECT_EQ (arena_ref3.get (env).get (), nullptr );
124
+ EXPECT_TRUE (arena_ref4.get (env).Equals (env, string1));
42
125
43
- Local<String> stringRef2 = string;
44
- string.clear ();
45
- EXPECT_TRUE (arena_ref.get (env).Equals (env, stringRef2));
126
+ arena_ref4 = std::move (arena_ref1);
127
+ EXPECT_EQ (arena_ref4.get (env).get (), nullptr );
46
128
}
47
129
48
130
} // namespace
0 commit comments