From a98cf8200ec977bbe9422c5585d6b168931705b7 Mon Sep 17 00:00:00 2001 From: Sebastian Messmer Date: Fri, 26 Jun 2015 02:06:33 +0200 Subject: [PATCH] Improve move testcases for Either --- test/EitherTest.cpp | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/test/EitherTest.cpp b/test/EitherTest.cpp index c16712a8..91470547 100644 --- a/test/EitherTest.cpp +++ b/test/EitherTest.cpp @@ -15,6 +15,9 @@ class OnlyMoveable { public: OnlyMoveable(int value_): value(value_) {} OnlyMoveable(OnlyMoveable &&source): value(source.value) {source.value = -1;} + bool operator==(const OnlyMoveable &rhs) const { + return value == rhs.value; + } int value; private: DISALLOW_COPY_AND_ASSIGN(OnlyMoveable); @@ -127,12 +130,12 @@ TEST_F(EitherTest, IsRightWhenMoveContructed) { TEST_F(EitherTest, LeftIsStoredWhenMoveContructed) { Either val = OnlyMoveable(2); - EXPECT_EQ(2, val.left().value); + EXPECT_LEFT_IS(OnlyMoveable(2), val); } TEST_F(EitherTest, RightIsStoredWhenMoveContructed) { Either val = OnlyMoveable(3); - EXPECT_EQ(3, val.right().value); + EXPECT_RIGHT_IS(OnlyMoveable(3), val); } TEST_F(EitherTest, LeftCanBeCopied) { @@ -162,15 +165,13 @@ TEST_F(EitherTest, CopyingRightDoesntChangeSource) { TEST_F(EitherTest, LeftCanBeMoved) { Either val = OnlyMoveable(5); Either val2 = std::move(val); - EXPECT_IS_LEFT(val2); - EXPECT_EQ(5, val2.left().value); + EXPECT_LEFT_IS(OnlyMoveable(5), val2); } TEST_F(EitherTest, RightCanBeMoved) { Either val = OnlyMoveable(5); Either val2 = std::move(val); - EXPECT_IS_RIGHT(val2); - EXPECT_EQ(5, val2.right().value); + EXPECT_RIGHT_IS(OnlyMoveable(5), val2); } TEST_F(EitherTest, LeftCanBeAssigned) { @@ -191,14 +192,14 @@ TEST_F(EitherTest, LeftCanBeMoveAssigned) { Either val = OnlyMoveable(3); Either val2 = OnlyMoveable(4); val2 = std::move(val); - EXPECT_EQ(3, val2.left().value); + EXPECT_LEFT_IS(OnlyMoveable(3), val2); } TEST_F(EitherTest, RightCanBeMoveAssigned) { Either val = OnlyMoveable(3); Either val2 = OnlyMoveable(4); val2 = std::move(val); - EXPECT_EQ(3, val2.right().value); + EXPECT_RIGHT_IS(OnlyMoveable(3), val2); } TEST_F(EitherTest, LeftCanBeDirectlyAssigned) { @@ -216,13 +217,13 @@ TEST_F(EitherTest, RightCanBeDirectlyAssigned) { TEST_F(EitherTest, LeftCanBeDirectlyMoveAssigned) { Either val = OnlyMoveable(3); val = OnlyMoveable(5); - EXPECT_EQ(5, val.left().value); + EXPECT_LEFT_IS(OnlyMoveable(5), val); } TEST_F(EitherTest, RightCanBeDirectlyMoveAssigned) { Either val = OnlyMoveable(3); val = OnlyMoveable(5); - EXPECT_EQ(5, val.right().value); + EXPECT_RIGHT_IS(OnlyMoveable(5), val); } TEST_F(EitherTest, ModifyLeft) {