summaryrefslogtreecommitdiff
path: root/src/mongo/db/logical_time_test.cpp
diff options
context:
space:
mode:
authorKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-08-03 15:54:36 -0400
committerKaloian Manassiev <kaloian.manassiev@mongodb.com>2017-08-07 13:36:23 -0400
commit3aa21a3194e32eadd1158432f2ed39d4bc931e3f (patch)
treece7fc22d676d550d6eb5de8504c806cb83a3e14b /src/mongo/db/logical_time_test.cpp
parent53bdf3fa8d2e0e3d6a795d2a13b5f013d8fdfa14 (diff)
downloadmongo-3aa21a3194e32eadd1158432f2ed39d4bc931e3f.tar.gz
SERVER-30147 Move Command::appendOperationTime to LogicalTime
Diffstat (limited to 'src/mongo/db/logical_time_test.cpp')
-rw-r--r--src/mongo/db/logical_time_test.cpp34
1 files changed, 34 insertions, 0 deletions
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;