56 class Derived :
public Base1,
public Base2 {
65 CopyNoAssign(
const CopyNoAssign& other) :
foo(other.
foo) {}
68 const CopyNoAssign& operator=(
const CopyNoAssign&);
71 TEST(StatusOr, TestDefaultCtor) {
77 TEST(StatusOr, TestStatusCtor) {
83 TEST(StatusOr, TestValueCtor) {
85 StatusOr<int> thing(kI);
90 TEST(StatusOr, TestCopyCtorStatusOk) {
92 StatusOr<int> original(kI);
93 StatusOr<int> copy(original);
94 EXPECT_EQ(original.status(), copy.status());
95 EXPECT_EQ(original.ValueOrDie(), copy.ValueOrDie());
98 TEST(StatusOr, TestCopyCtorStatusNotOk) {
100 StatusOr<int> copy(original);
101 EXPECT_EQ(original.status(), copy.status());
104 TEST(StatusOr, TestCopyCtorStatusOKConverting) {
106 StatusOr<int> original(kI);
107 StatusOr<double> copy(original);
108 EXPECT_EQ(original.status(), copy.status());
109 EXPECT_EQ(original.ValueOrDie(), copy.ValueOrDie());
112 TEST(StatusOr, TestCopyCtorStatusNotOkConverting) {
114 StatusOr<double> copy(original);
115 EXPECT_EQ(original.status(), copy.status());
118 TEST(StatusOr, TestAssignmentStatusOk) {
127 TEST(StatusOr, TestAssignmentStatusNotOk) {
134 TEST(StatusOr, TestAssignmentStatusOKConverting) {
143 TEST(StatusOr, TestAssignmentStatusNotOkConverting) {
150 TEST(StatusOr, TestStatus) {
151 StatusOr<int> good(4);
158 TEST(StatusOr, TestValue) {
160 StatusOr<int> thing(kI);
164 TEST(StatusOr, TestValueConst) {
166 const StatusOr<int> thing(kI);
170 TEST(StatusOr, TestPointerDefaultCtor) {
171 StatusOr<int*> thing;
176 TEST(StatusOr, TestPointerStatusCtor) {
182 TEST(StatusOr, TestPointerValueCtor) {
184 StatusOr<const int*> thing(&kI);
189 TEST(StatusOr, TestPointerCopyCtorStatusOk) {
191 StatusOr<const int*> original(&kI);
192 StatusOr<const int*> copy(original);
193 EXPECT_EQ(original.status(), copy.status());
194 EXPECT_EQ(original.ValueOrDie(), copy.ValueOrDie());
197 TEST(StatusOr, TestPointerCopyCtorStatusNotOk) {
199 StatusOr<int*> copy(original);
200 EXPECT_EQ(original.status(), copy.status());
203 TEST(StatusOr, TestPointerCopyCtorStatusOKConverting) {
205 StatusOr<Derived*> original(&derived);
206 StatusOr<Base2*> copy(original);
207 EXPECT_EQ(original.status(), copy.status());
208 EXPECT_EQ(
static_cast<const Base2*
>(original.ValueOrDie()),
212 TEST(StatusOr, TestPointerCopyCtorStatusNotOkConverting) {
214 StatusOr<Base2*> copy(original);
215 EXPECT_EQ(original.status(), copy.status());
218 TEST(StatusOr, TestPointerAssignmentStatusOk) {
220 StatusOr<const int*>
source(&kI);
221 StatusOr<const int*>
target;
227 TEST(StatusOr, TestPointerAssignmentStatusNotOk) {
234 TEST(StatusOr, TestPointerAssignmentStatusOKConverting) {
236 StatusOr<Derived*>
source(&derived);
244 TEST(StatusOr, TestPointerAssignmentStatusNotOkConverting) {
251 TEST(StatusOr, TestPointerStatus) {
253 StatusOr<const int*> good(&kI);
259 TEST(StatusOr, TestPointerValue) {
261 StatusOr<const int*> thing(&kI);
265 TEST(StatusOr, TestPointerValueConst) {
267 const StatusOr<const int*> thing(&kI);