31 #include <google/protobuf/stubs/statusor.h>
36 #include <google/protobuf/testing/googletest.h>
37 #include <gtest/gtest.h>
56 class Derived :
public Base1,
public Base2 {
65 CopyNoAssign(
const CopyNoAssign& other) :
foo(other.
foo) {}
68 const CopyNoAssign& operator=(
const CopyNoAssign&);
85 StatusOr<int> thing(kI);
92 StatusOr<int> original(kI);
93 StatusOr<int>
copy(original);
100 StatusOr<int>
copy(original);
106 StatusOr<int> original(kI);
107 StatusOr<double>
copy(original);
114 StatusOr<double>
copy(original);
120 StatusOr<int> source(kI);
136 StatusOr<int> source(kI);
151 StatusOr<int> good(4);
160 StatusOr<int> thing(kI);
166 const StatusOr<int> thing(kI);
171 StatusOr<int*> thing;
184 StatusOr<const int*> thing(&kI);
191 StatusOr<const int*> original(&kI);
192 StatusOr<const int*>
copy(original);
199 StatusOr<int*>
copy(original);
205 StatusOr<Derived*> original(&derived);
206 StatusOr<Base2*>
copy(original);
208 EXPECT_EQ(
static_cast<const Base2*
>(original.value()),
copy.value());
211 TEST(
StatusOr, TestPointerCopyCtorStatusNotOkConverting) {
213 StatusOr<Base2*>
copy(original);
219 StatusOr<const int*> source(&kI);
220 StatusOr<const int*>
target;
233 TEST(
StatusOr, TestPointerAssignmentStatusOKConverting) {
235 StatusOr<Derived*> source(&derived);
242 TEST(
StatusOr, TestPointerAssignmentStatusNotOkConverting) {
251 StatusOr<const int*> good(&kI);
259 StatusOr<const int*> thing(&kI);
265 const StatusOr<const int*> thing(&kI);