rename delete blob snapshot options, add delete blob snapshot test cases (#1272)

* rename delete blob snapshot options, add delete blob snapshot test cases

* changelog

* Apply suggestions from code review

* Update sdk/storage/azure-storage-blobs/test/block_blob_client_test.cpp

* Update sdk/storage/azure-storage-blobs/test/block_blob_client_test.cpp
This commit is contained in:
JinmingHu 2021-01-07 21:26:12 +08:00 committed by GitHub
parent b212d287ab
commit d6c838e9e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 23 additions and 2 deletions

View File

@ -62,6 +62,7 @@
- Replace `std::pair<int64_t, int64_t>` with `Azure::Core::Http::Range` to denote blob ranges.
- Move version strings into `Details` namespace.
- Replace scoped enums that don't support bitwise operations with extensible enum.
- Rename `Models::DeleteSnapshotsOption::Only` to `Models::DeleteSnapshotsOption::OnlySnapshots`.
- Rename `SourceConditions` in API options to `SourceAccessConditions`.
## 12.0.0-beta.5 (2020-11-13)

View File

@ -349,7 +349,7 @@ namespace Azure { namespace Storage { namespace Blobs {
bool operator!=(const DeleteSnapshotsOption& other) const { return !(*this == other); }
const std::string& Get() const { return m_value; }
const static DeleteSnapshotsOption IncludeSnapshots;
const static DeleteSnapshotsOption Only;
const static DeleteSnapshotsOption OnlySnapshots;
private:
std::string m_value;

View File

@ -61,7 +61,7 @@ namespace Azure { namespace Storage { namespace Blobs { namespace Models {
const CopyStatus CopyStatus::Pending("pending");
const DeleteSnapshotsOption DeleteSnapshotsOption::IncludeSnapshots("include");
const DeleteSnapshotsOption DeleteSnapshotsOption::Only("only");
const DeleteSnapshotsOption DeleteSnapshotsOption::OnlySnapshots("only");
const EncryptionAlgorithmType EncryptionAlgorithmType::Aes256("AES256");

View File

@ -802,4 +802,24 @@ namespace Azure { namespace Storage { namespace Test {
}
}
TEST_F(BlockBlobClientTest, DeleteSnapshots)
{
std::vector<uint8_t> emptyContent;
auto blobClient = Azure::Storage::Blobs::BlockBlobClient::CreateFromConnectionString(
StandardStorageConnectionString(), m_containerName, RandomString());
blobClient.UploadFrom(emptyContent.data(), emptyContent.size());
auto s1 = blobClient.CreateSnapshot()->Snapshot;
Blobs::DeleteBlobOptions deleteOptions;
EXPECT_THROW(blobClient.Delete(deleteOptions), StorageException);
deleteOptions.DeleteSnapshots = Blobs::Models::DeleteSnapshotsOption::OnlySnapshots;
EXPECT_NO_THROW(blobClient.Delete(deleteOptions));
EXPECT_NO_THROW(blobClient.GetProperties());
EXPECT_THROW(blobClient.WithSnapshot(s1).GetProperties(), StorageException);
auto s2 = blobClient.CreateSnapshot()->Snapshot;
deleteOptions.DeleteSnapshots = Blobs::Models::DeleteSnapshotsOption::IncludeSnapshots;
EXPECT_NO_THROW(blobClient.Delete(deleteOptions));
EXPECT_THROW(blobClient.GetProperties(), StorageException);
EXPECT_THROW(blobClient.WithSnapshot(s2).GetProperties(), StorageException);
}
}}} // namespace Azure::Storage::Test