summaryrefslogtreecommitdiffstats
path: root/storage/src/tests/persistence/testandsettest.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'storage/src/tests/persistence/testandsettest.cpp')
-rw-r--r--storage/src/tests/persistence/testandsettest.cpp26
1 files changed, 10 insertions, 16 deletions
diff --git a/storage/src/tests/persistence/testandsettest.cpp b/storage/src/tests/persistence/testandsettest.cpp
index 864ab320527..ca441c71816 100644
--- a/storage/src/tests/persistence/testandsettest.cpp
+++ b/storage/src/tests/persistence/testandsettest.cpp
@@ -40,18 +40,11 @@ struct TestAndSetTest : SingleDiskPersistenceTestUtils {
: context(spi::LoadType(0, "default"), 0, 0)
{}
- MessageTracker::UP
- createTracker(api::StorageMessage::SP cmd, document::Bucket bucket) {
- return std::make_unique<MessageTracker>(getEnv(), NoBucketLock::make(bucket), std::move(cmd));
- }
-
void SetUp() override {
SingleDiskPersistenceTestUtils::SetUp();
createBucket(BUCKET_ID);
- getPersistenceProvider().createBucket(
- makeSpiBucket(BUCKET_ID),
- context);
+ getPersistenceProvider().createBucket(makeSpiBucket(BUCKET_ID),context);
thread = createPersistenceThread(0);
testDoc = createTestDocument();
@@ -59,7 +52,8 @@ struct TestAndSetTest : SingleDiskPersistenceTestUtils {
}
void TearDown() override {
- thread.reset(nullptr);
+ thread->flush();
+ thread.reset();
SingleDiskPersistenceTestUtils::TearDown();
}
@@ -91,7 +85,7 @@ TEST_F(TestAndSetTest, conditional_put_not_executed_on_condition_mismatch) {
auto putTwo = std::make_shared<api::PutCommand>(BUCKET, testDoc, timestampTwo);
setTestCondition(*putTwo);
- ASSERT_EQ(thread->handlePut(*putTwo, createTracker(putTwo, BUCKET))->getResult().getResult(),
+ ASSERT_EQ(fetchResult(thread->handlePut(*putTwo, createTracker(putTwo, BUCKET))).getResult(),
api::ReturnCode::Result::TEST_AND_SET_CONDITION_FAILED);
EXPECT_EQ(expectedDocEntryString(timestampOne, testDocId), dumpBucket(BUCKET_ID));
}
@@ -111,7 +105,7 @@ TEST_F(TestAndSetTest, conditional_put_executed_on_condition_match) {
auto putTwo = std::make_shared<api::PutCommand>(BUCKET, testDoc, timestampTwo);
setTestCondition(*putTwo);
- ASSERT_EQ(thread->handlePut(*putTwo, createTracker(putTwo, BUCKET))->getResult().getResult(), api::ReturnCode::Result::OK);
+ ASSERT_EQ(fetchResult(thread->handlePut(*putTwo, createTracker(putTwo, BUCKET))).getResult(), api::ReturnCode::Result::OK);
EXPECT_EQ(expectedDocEntryString(timestampOne, testDocId) +
expectedDocEntryString(timestampTwo, testDocId),
dumpBucket(BUCKET_ID));
@@ -131,7 +125,7 @@ TEST_F(TestAndSetTest, conditional_remove_not_executed_on_condition_mismatch) {
auto remove = std::make_shared<api::RemoveCommand>(BUCKET, testDocId, timestampTwo);
setTestCondition(*remove);
- ASSERT_EQ(thread->handleRemove(*remove, createTracker(remove, BUCKET))->getResult().getResult(),
+ ASSERT_EQ(fetchResult(thread->handleRemove(*remove, createTracker(remove, BUCKET))).getResult(),
api::ReturnCode::Result::TEST_AND_SET_CONDITION_FAILED);
EXPECT_EQ(expectedDocEntryString(timestampOne, testDocId), dumpBucket(BUCKET_ID));
@@ -151,7 +145,7 @@ TEST_F(TestAndSetTest, conditional_remove_executed_on_condition_match) {
auto remove = std::make_shared<api::RemoveCommand>(BUCKET, testDocId, timestampTwo);
setTestCondition(*remove);
- ASSERT_EQ(thread->handleRemove(*remove, createTracker(remove, BUCKET))->getResult().getResult(), api::ReturnCode::Result::OK);
+ ASSERT_EQ(fetchResult(thread->handleRemove(*remove, createTracker(remove, BUCKET))).getResult(), api::ReturnCode::Result::OK);
EXPECT_EQ(expectedDocEntryString(timestampOne, testDocId) +
expectedDocEntryString(timestampTwo, testDocId, spi::REMOVE_ENTRY),
dumpBucket(BUCKET_ID));
@@ -223,7 +217,7 @@ TEST_F(TestAndSetTest, invalid_document_selection_should_fail) {
auto put = std::make_shared<api::PutCommand>(BUCKET, testDoc, timestamp);
put->setCondition(documentapi::TestAndSetCondition("bjarne"));
- ASSERT_EQ(thread->handlePut(*put, createTracker(put, BUCKET))->getResult().getResult(), api::ReturnCode::Result::ILLEGAL_PARAMETERS);
+ ASSERT_EQ(fetchResult(thread->handlePut(*put, createTracker(put, BUCKET))).getResult(), api::ReturnCode::Result::ILLEGAL_PARAMETERS);
EXPECT_EQ("", dumpBucket(BUCKET_ID));
}
@@ -235,7 +229,7 @@ TEST_F(TestAndSetTest, conditional_put_to_non_existing_document_should_fail) {
setTestCondition(*put);
thread->handlePut(*put, createTracker(put, BUCKET));
- ASSERT_EQ(thread->handlePut(*put, createTracker(put, BUCKET))->getResult().getResult(),
+ ASSERT_EQ(fetchResult(thread->handlePut(*put, createTracker(put, BUCKET))).getResult(),
api::ReturnCode::Result::TEST_AND_SET_CONDITION_FAILED);
EXPECT_EQ("", dumpBucket(BUCKET_ID));
}
@@ -279,7 +273,7 @@ void TestAndSetTest::putTestDocument(bool matchingHeader, api::Timestamp timesta
}
auto put = std::make_shared<api::PutCommand>(BUCKET, testDoc, timestamp);
- thread->handlePut(*put, createTracker(put, BUCKET));
+ fetchResult(thread->handlePut(*put, createTracker(put, BUCKET)));
}
void TestAndSetTest::assertTestDocumentFoundAndMatchesContent(const document::FieldValue & value)