From 3aa21a3194e32eadd1158432f2ed39d4bc931e3f Mon Sep 17 00:00:00 2001 From: Kaloian Manassiev Date: Thu, 3 Aug 2017 15:54:36 -0400 Subject: SERVER-30147 Move Command::appendOperationTime to LogicalTime --- src/mongo/db/logical_time_test.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/mongo/db/logical_time_test.cpp') diff --git a/src/mongo/db/logical_time_test.cpp b/src/mongo/db/logical_time_test.cpp index ed738cc20d6..bf0b3b567ba 100644 --- a/src/mongo/db/logical_time_test.cpp +++ b/src/mongo/db/logical_time_test.cpp @@ -105,6 +105,40 @@ TEST(LogicalTime, toUnsignedArray) { } } +TEST(LogicalTime, appendAsOperationTime) { + BSONObjBuilder actualResultBuilder; + LogicalTime testTime(Timestamp(1)); + testTime.appendAsOperationTime(&actualResultBuilder); + + const auto actualResult = actualResultBuilder.obj(); + ASSERT_BSONOBJ_EQ(BSON("operationTime" << Timestamp(1)), actualResult); + + // Test round-trip works + ASSERT_EQ(testTime, LogicalTime::fromOperationTime(actualResult)); +} + +TEST(LogicalTime, fromOperationTime) { + const auto actualTime = LogicalTime::fromOperationTime(BSON("someOtherCommandParameter" + << "Value" + << "operationTime" + << Timestamp(1))); + ASSERT_EQ(LogicalTime(Timestamp(1)), actualTime); +} + +TEST(LogicalTime, fromOperationTimeMissingOperationTime) { + ASSERT_THROWS_CODE(LogicalTime::fromOperationTime(BSON("someOtherCommandParameter" + << "Value")), + DBException, + ErrorCodes::FailedToParse); +} + +TEST(LogicalTime, fromOperationTimeBadType) { + ASSERT_THROWS_CODE(LogicalTime::fromOperationTime(BSON("operationTime" + << "BadStringValue")), + DBException, + ErrorCodes::BadValue); +} + TEST(SignedLogicalTime, roundtrip) { Timestamp tX(1); TimeProofService tps; -- cgit v1.2.1