// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. #include #include #include #include using document::test::makeDocumentBucket; using namespace ::testing; namespace storage { struct DiskMoveOperationHandlerTest : PersistenceTestUtils {}; TEST_F(DiskMoveOperationHandlerTest, simple) { setupDisks(10); // Create bucket 16, 4 on disk 3. { StorBucketDatabase::WrappedEntry entry( createBucket(document::BucketId(16, 4))); entry->disk = 3; entry.write(); } for (uint32_t i = 0; i < 10; i++) { doPutOnDisk(3, 4, spi::Timestamp(1000 + i)); } DiskMoveOperationHandler diskMoveHandler(getEnv(3),getPersistenceProvider()); document::Bucket bucket = makeDocumentBucket(document::BucketId(16, 4)); auto move = std::make_shared(bucket, 3, 4); spi::Context context(documentapi::LoadType::DEFAULT, 0, 0); diskMoveHandler.handleBucketDiskMove(*move, std::make_unique(getEnv(), NoBucketLock::make(bucket), move)); EXPECT_EQ("BucketId(0x4000000000000004): 10,4", getBucketStatus(document::BucketId(16,4))); } }