16
16
17
17
#include " Firestore/core/src/firebase/firestore/util/vector_of_ptr.h"
18
18
19
+ #include " absl/memory/memory.h"
19
20
#include " gtest/gtest.h"
20
21
21
22
namespace firebase {
22
23
namespace firestore {
23
24
namespace util {
24
25
25
26
TEST (VectorOfPtrTest, DefaultConstructor) {
26
- vector_of_ptr<int > values;
27
+ vector_of_ptr<std::shared_ptr< int > > values;
27
28
EXPECT_EQ (0 , values.size ());
28
29
}
29
30
30
31
TEST (VectorOfPtrTest, PushBack) {
31
- vector_of_ptr<int > values;
32
+ vector_of_ptr<std::shared_ptr< int > > values;
32
33
values.push_back (std::make_shared<int >(0 ));
33
34
values.push_back (std::make_shared<int >(42 ));
34
35
EXPECT_EQ (2 , values.size ());
35
36
}
36
37
37
38
TEST (VectorOfPtrTest, BracedInitialization) {
38
- vector_of_ptr<int > brace_initialized_ints{ std::make_shared <int >( 0 ),
39
- std::make_shared<int >(1 )};
39
+ vector_of_ptr<std::shared_ptr <int >> brace_initialized_ints{
40
+ std::make_shared< int >( 0 ), std::make_shared<int >(1 )};
40
41
41
42
EXPECT_EQ (2 , brace_initialized_ints.size ());
42
43
43
44
brace_initialized_ints = {};
44
45
EXPECT_EQ (0 , brace_initialized_ints.size ());
45
46
}
46
47
48
+ TEST (VectorOfPtrTest, WorksWithUniquePtr) {
49
+ vector_of_ptr<std::unique_ptr<int >> values;
50
+ values.push_back (absl::make_unique<int >(42 ));
51
+
52
+ auto pointer = absl::make_unique<int >(0 );
53
+ values.push_back (std::move (pointer));
54
+
55
+ ASSERT_EQ (2 , values.size ());
56
+ }
57
+
47
58
TEST (VectorOfPtrTest, EqualityIsValueEquality) {
48
- vector_of_ptr< int > lhs = {std::make_shared< int >( 0 ), std::make_shared <int >( 1 )} ;
49
- vector_of_ptr< int > rhs = {std::make_shared<int >(0 ), std::make_shared<int >(1 )};
50
- vector_of_ptr< int > other = {std::make_shared<int >(1 ),
51
- std::make_shared<int >(0 )};
52
- vector_of_ptr< int > contains_nulls = {nullptr , nullptr };
53
- vector_of_ptr< int > empty;
59
+ using int_ptr_vector = vector_of_ptr< std::shared_ptr <int >> ;
60
+ int_ptr_vector lhs = {std::make_shared<int >(0 ), std::make_shared<int >(1 )};
61
+ int_ptr_vector rhs = {std::make_shared<int >(0 ), std::make_shared< int >( 1 )};
62
+ int_ptr_vector other = {std::make_shared< int >( 1 ), std::make_shared<int >(0 )};
63
+ int_ptr_vector contains_nulls = {nullptr , nullptr };
64
+ int_ptr_vector empty;
54
65
55
66
EXPECT_EQ (lhs, lhs);
56
67
EXPECT_EQ (lhs, rhs);
@@ -62,7 +73,7 @@ TEST(VectorOfPtrTest, EqualityIsValueEquality) {
62
73
TEST (VectorOfPtrTest, IterationIsOnPointers) {
63
74
std::shared_ptr<int > pointers[] = {std::make_shared<int >(-1 ),
64
75
std::make_shared<int >(42 )};
65
- vector_of_ptr<int > vector = {pointers[0 ], pointers[1 ]};
76
+ vector_of_ptr<std::shared_ptr< int > > vector = {pointers[0 ], pointers[1 ]};
66
77
67
78
size_t pos = 0 ;
68
79
for (const std::shared_ptr<int >& element : vector) {
0 commit comments