public async Task CreateDeleteBlobContainer() { //create blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerResource container1 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; Assert.IsNotNull(container1); Assert.AreEqual(container1.Id.Name, containerName); //validate if created successfully BlobContainerResource container2 = await _blobContainerCollection.GetAsync(containerName); AssertBlobContainerEqual(container1, container2); Assert.IsTrue(await _blobContainerCollection.ExistsAsync(containerName)); Assert.IsFalse(await _blobContainerCollection.ExistsAsync(containerName + "1")); BlobContainerData containerData = container1.Data; Assert.IsEmpty(containerData.Metadata); Assert.IsFalse(containerData.HasLegalHold); Assert.IsNull(containerData.PublicAccess); Assert.False(containerData.HasImmutabilityPolicy); //delete blob container ArmOperation blobContainerDeleteOperation = await container1.DeleteAsync(WaitUntil.Completed); await blobContainerDeleteOperation.WaitForCompletionResponseAsync(); //validate if deleted successfully var exception = Assert.ThrowsAsync <RequestFailedException>(async() => { await _blobContainerCollection.GetAsync(containerName); }); Assert.AreEqual(404, exception.Status); Assert.IsFalse(await _blobContainerCollection.ExistsAsync(containerName)); }
public async Task BlobContainerEncryptionScope() { //create encryption scope string scopeName1 = "testscope1"; string scopeName2 = "testscope2"; EncryptionScopeData data = new EncryptionScopeData() { Source = EncryptionScopeSource.MicrosoftStorage, State = EncryptionScopeState.Enabled }; await _storageAccount.GetEncryptionScopes().CreateOrUpdateAsync(WaitUntil.Completed, scopeName1, data); await _storageAccount.GetEncryptionScopes().CreateOrUpdateAsync(WaitUntil.Completed, scopeName2, data); //create container string containerName = Recording.GenerateAssetName("container"); BlobContainerResource blobContainer = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData() { DefaultEncryptionScope = scopeName1, DenyEncryptionScopeOverride = false })).Value; Assert.AreEqual(scopeName1, blobContainer.Data.DefaultEncryptionScope); Assert.False(blobContainer.Data.DenyEncryptionScopeOverride.Value); //Update container not support Encryption scope BlobContainerResource blobContainer2 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData() { DefaultEncryptionScope = scopeName2, DenyEncryptionScopeOverride = true })).Value; Assert.AreEqual(scopeName2, blobContainer2.Data.DefaultEncryptionScope); Assert.True(blobContainer2.Data.DenyEncryptionScopeOverride.Value); }
public async Task SetClearLegalHold() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //set legal hold LegalHold legalHoldModel = new LegalHold(new List <string> { "tag1", "tag2", "tag3" }); LegalHold legalHold = await container.SetLegalHoldAsync(legalHoldModel); //validate Assert.True(legalHold.HasLegalHold); Assert.AreEqual(new List <string> { "tag1", "tag2", "tag3" }, legalHold.Tags); //clear legal hold legalHold = await container.ClearLegalHoldAsync(legalHoldModel); //validate Assert.False(legalHold.HasLegalHold); Assert.AreEqual(0, legalHold.Tags.Count); }
public async Task CreateDeleteImmutabilityPolicy() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicyResource immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, data: immutabilityPolicyModel)).Value; //validate Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); //delete immutability policy immutabilityPolicyModel = (await immutabilityPolicy.DeleteAsync(WaitUntil.Completed, immutabilityPolicy.Data.Etag)).Value.Data; //validate Assert.NotNull(immutabilityPolicyModel.ResourceType); Assert.NotNull(immutabilityPolicyModel.Name); Assert.AreEqual(0, immutabilityPolicyModel.ImmutabilityPeriodSinceCreationInDays); }
public async Task GetAllBlobContainers() { //create two blob containers string containerName1 = Recording.GenerateAssetName("testblob1"); string containerName2 = Recording.GenerateAssetName("testblob2"); BlobContainerResource container1 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName1, new BlobContainerData())).Value; BlobContainerResource container2 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName2, new BlobContainerData())).Value; //validate if there are two containers BlobContainerResource container3 = null; BlobContainerResource container4 = null; int count = 0; await foreach (BlobContainerResource container in _blobContainerCollection.GetAllAsync()) { count++; if (container.Id.Name == containerName1) { container3 = container; } if (container.Id.Name == containerName2) { container4 = container; } } Assert.AreEqual(count, 2); Assert.IsNotNull(container3); Assert.IsNotNull(container4); }
public async Task Get() { #region Snippet:Managing_BlobContainers_GetBlobContainer BlobContainerCollection blobContainerCollection = blobService.GetBlobContainers(); BlobContainerResource blobContainer = await blobContainerCollection.GetAsync("myBlobContainer"); Console.WriteLine(blobContainer.Id.Name); #endregion }
public async Task Delete() { #region Snippet:Managing_BlobContainers_DeleteBlobContainer BlobContainerCollection blobContainerCollection = blobService.GetBlobContainers(); BlobContainerResource blobContainer = await blobContainerCollection.GetAsync("myBlobContainer"); await blobContainer.DeleteAsync(WaitUntil.Completed); #endregion }
public async Task BlobContainerSoftDelete() { //update storage account to v2 PatchableStorageAccountData updateParameters = new PatchableStorageAccountData() { Kind = StorageKind.StorageV2 }; await _storageAccount.UpdateAsync(updateParameters); _blobService = await _blobService.GetAsync(); BlobServiceData properties = _blobService.Data; //enable container softdelete properties.ContainerDeleteRetentionPolicy = new DeleteRetentionPolicy(); properties.ContainerDeleteRetentionPolicy.Enabled = true; properties.ContainerDeleteRetentionPolicy.Days = 30; _blobService = (await _blobService.CreateOrUpdateAsync(WaitUntil.Completed, properties)).Value; //create two blob containers and delete 1 string containerName1 = Recording.GenerateAssetName("testblob1"); string containerName2 = Recording.GenerateAssetName("testblob2"); BlobContainerResource container1 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName1, new BlobContainerData())).Value; BlobContainerResource container2 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName2, new BlobContainerData())).Value; await container2.DeleteAsync(WaitUntil.Completed); //list delete included List <BlobContainerResource> blobContainers = await _blobContainerCollection.GetAllAsync(include : ListContainersInclude.Deleted).ToEnumerableAsync(); Assert.AreEqual(2, blobContainers.Count); foreach (BlobContainerResource con in blobContainers) { if (con.Data.Name == containerName1) { Assert.IsFalse(con.Data.Deleted); } else { Assert.IsTrue(con.Data.Deleted); Assert.NotNull(con.Data.RemainingRetentionDays); } } //list without delete included blobContainers = await _blobContainerCollection.GetAllAsync().ToEnumerableAsync(); Assert.AreEqual(1, blobContainers.Count); //disable container softdelete properties = _blobService.Data; properties.ContainerDeleteRetentionPolicy = new DeleteRetentionPolicy(); properties.DeleteRetentionPolicy.Enabled = false; _blobService = (await _blobService.CreateOrUpdateAsync(WaitUntil.Completed, properties)).Value; properties = _blobService.Data; Assert.IsFalse(properties.ContainerDeleteRetentionPolicy.Enabled); }
public async Task ExtendImmutabilityPolicy() { //update storage account to v2 PatchableStorageAccountData updateParameters = new PatchableStorageAccountData() { Kind = StorageKind.StorageV2 }; _storageAccount = await _storageAccount.UpdateAsync(updateParameters); _blobService = await _blobService.GetAsync(); // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicyResource immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, data: immutabilityPolicyModel)).Value; //validate Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); //lock immutability policy immutabilityPolicy = await container.GetImmutabilityPolicy().LockImmutabilityPolicyAsync(ifMatch: immutabilityPolicy.Data.Etag); Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Locked, immutabilityPolicy.Data.State); //extend immutability policy immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 100 }; immutabilityPolicy = await container.GetImmutabilityPolicy().ExtendImmutabilityPolicyAsync(ifMatch: immutabilityPolicy.Data.Etag, data: immutabilityPolicyModel); Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(100, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Locked, immutabilityPolicy.Data.State); await container.DeleteAsync(WaitUntil.Completed); }
public async Task CreateOrUpdate() { #region Snippet:Managing_BlobContainers_CreateBlobContainer BlobContainerCollection blobContainerCollection = blobService.GetBlobContainers(); string blobContainerName = "myBlobContainer"; BlobContainerData blobContainerData = new BlobContainerData(); ArmOperation <BlobContainerResource> blobContainerCreateOperation = await blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, blobContainerName, blobContainerData); BlobContainerResource blobContainer = blobContainerCreateOperation.Value; #endregion }
public async Task BlobContainersVLW() { //update storage account to v2 PatchableStorageAccountData updateParameters = new PatchableStorageAccountData() { Kind = StorageKind.StorageV2 }; _storageAccount = await _storageAccount.UpdateAsync(updateParameters); _blobService = await _blobService.GetAsync(); //enable blob versioning BlobServiceData properties = _blobService.Data; properties.IsVersioningEnabled = true; _blobService = (await _blobService.CreateOrUpdateAsync(WaitUntil.Completed, properties)).Value; Assert.IsTrue(properties.IsVersioningEnabled); //create container with VLW string containerName1 = Recording.GenerateAssetName("testblob1"); BlobContainerData parameters1 = new BlobContainerData() { ImmutableStorageWithVersioning = new ImmutableStorageWithVersioning() { Enabled = true } }; BlobContainerResource container1 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName1, parameters1)).Value; Assert.IsTrue(container1.Data.ImmutableStorageWithVersioning.Enabled); Assert.IsNull(container1.Data.ImmutableStorageWithVersioning.MigrationState); //update container to enabled Immutability Policy string containerName2 = Recording.GenerateAssetName("testblob2"); BlobContainerData parameters2 = new BlobContainerData(); BlobContainerResource container2 = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName2, parameters2)).Value; await container2.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, data: new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 1 }); await container2.ObjectLevelWormAsync(WaitUntil.Completed); container2 = await container2.GetAsync(); Assert.IsTrue(container2.Data.ImmutableStorageWithVersioning.Enabled); Assert.AreEqual("Completed", container2.Data.ImmutableStorageWithVersioning.MigrationState); }
public async Task UpdateImmutabilityPolicy() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //create immutability policy ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicyResource immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, immutabilityPolicyModel)).Value; //validate Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); //update immutability policy immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 5, AllowProtectedAppendWrites = true }; immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, immutabilityPolicyModel, immutabilityPolicy.Data.Etag)).Value; Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(5, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.IsTrue(immutabilityPolicy.Data.AllowProtectedAppendWrites); immutabilityPolicy = await container.GetImmutabilityPolicy().GetAsync(immutabilityPolicy.Data.Etag); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(5, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.IsTrue(immutabilityPolicy.Data.AllowProtectedAppendWrites); }
public async Task UpdateBlobContainer() { //create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; //update metadata, public access BlobContainerData containerData = container.Data; containerData.Metadata.Add("key1", "value1"); containerData.PublicAccess = PublicAccess.Container; BlobContainerResource container1 = await container.UpdateAsync(containerData); //validate Assert.NotNull(container1); Assert.NotNull(container1.Data.Metadata); Assert.AreEqual(container1.Data.Metadata["key1"], "value1"); Assert.AreEqual(PublicAccess.Container, container.Data.PublicAccess); Assert.False(container1.Data.HasLegalHold); Assert.False(container1.Data.HasImmutabilityPolicy); }
public async Task ImmutabilityPolicy_AllowProtectedAppendWrites() { // create a blob container string containerName = Recording.GenerateAssetName("testblob"); BlobContainerData data = new BlobContainerData(); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, data)).Value; ImmutabilityPolicyData immutabilityPolicyData = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 4, AllowProtectedAppendWrites = true }; ImmutabilityPolicyResource immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, immutabilityPolicyData)).Value; Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(4, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.True(immutabilityPolicy.Data.AllowProtectedAppendWrites.Value); immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays = 5; immutabilityPolicy.Data.AllowProtectedAppendWrites = false; immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, immutabilityPolicy.Data, ifMatch: immutabilityPolicy.Data.Etag)).Value; Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(5, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.False(immutabilityPolicy.Data.AllowProtectedAppendWrites.Value); immutabilityPolicy = await container.GetImmutabilityPolicy().GetAsync(immutabilityPolicy.Data.Etag); Assert.NotNull(immutabilityPolicy.Data.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(5, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); Assert.False(immutabilityPolicy.Data.AllowProtectedAppendWrites.Value); }
public static void AssertBlobContainerEqual(BlobContainerResource blobContainer1, BlobContainerResource blobContainer2) { Assert.AreEqual(blobContainer1.Id.Name, blobContainer2.Id.Name); Assert.AreEqual(blobContainer1.Id.Location, blobContainer2.Id.Location); }
public async Task CreateGetDeleteObjectReplicationPolicy() { //create 2 storage accounts string accountName1 = await CreateValidAccountNameAsync("teststoragemgmt"); string accountName2 = await CreateValidAccountNameAsync("teststoragemgmt"); StorageAccountCreateParameters createParameters = GetDefaultStorageAccountParameters(kind: StorageKind.StorageV2); StorageAccountResource sourceAccount = (await _resourceGroup.GetStorageAccounts().CreateOrUpdateAsync(WaitUntil.Completed, accountName1, createParameters)).Value; StorageAccountResource destAccount = (await _resourceGroup.GetStorageAccounts().CreateOrUpdateAsync(WaitUntil.Completed, accountName2, createParameters)).Value; //update 2 accounts properties var updateparameter = new PatchableStorageAccountData { AllowCrossTenantReplication = true, EnableHttpsTrafficOnly = true }; destAccount = await destAccount.UpdateAsync(updateparameter); sourceAccount = await sourceAccount.UpdateAsync(updateparameter); BlobServiceResource blobService1 = await destAccount.GetBlobService().GetAsync(); BlobContainerCollection blobContainerCollection1 = blobService1.GetBlobContainers(); BlobServiceResource blobService2 = await destAccount.GetBlobService().GetAsync(); BlobContainerCollection blobContainerCollection2 = blobService2.GetBlobContainers(); //enable changefeed and versoning blobService1.Data.IsVersioningEnabled = true; await blobService1.CreateOrUpdateAsync(WaitUntil.Completed, blobService1.Data); //create 2 pairs of source and dest blob containers string containerName1 = Recording.GenerateAssetName("testblob1"); string containerName2 = Recording.GenerateAssetName("testblob2"); string containerName3 = Recording.GenerateAssetName("testblob3"); string containerName4 = Recording.GenerateAssetName("testblob4"); BlobContainerResource container1 = (await blobContainerCollection1.CreateOrUpdateAsync(WaitUntil.Completed, containerName1, new BlobContainerData())).Value; BlobContainerResource container2 = (await blobContainerCollection2.CreateOrUpdateAsync(WaitUntil.Completed, containerName2, new BlobContainerData())).Value; BlobContainerResource container3 = (await blobContainerCollection1.CreateOrUpdateAsync(WaitUntil.Completed, containerName3, new BlobContainerData())).Value; BlobContainerResource container4 = (await blobContainerCollection2.CreateOrUpdateAsync(WaitUntil.Completed, containerName4, new BlobContainerData())).Value; //prepare rules and policy ObjectReplicationPolicyData parameter = new ObjectReplicationPolicyData() { SourceAccount = sourceAccount.Id.Name, DestinationAccount = destAccount.Id.Name }; List <string> prefix = new List <string>(); prefix.Add("aa"); prefix.Add("bc d"); prefix.Add("123"); string minCreationTime = "2021-03-19T16:06:00Z"; List <ObjectReplicationPolicyRule> rules = new List <ObjectReplicationPolicyRule>(); parameter.Rules.Add( new ObjectReplicationPolicyRule(containerName1, containerName2) { Filters = new ObjectReplicationPolicyFilter(prefix, minCreationTime), } ); parameter.Rules.Add( new ObjectReplicationPolicyRule(containerName3, containerName4) ); //create policy ObjectReplicationPolicyCollection objectReplicationPolicyCollection = destAccount.GetObjectReplicationPolicies(); ObjectReplicationPolicyResource objectReplicationPolicy = (await objectReplicationPolicyCollection.CreateOrUpdateAsync(WaitUntil.Completed, "default", parameter)).Value; Assert.NotNull(objectReplicationPolicy); Assert.AreEqual(objectReplicationPolicy.Data.DestinationAccount, destAccount.Id.Name); Assert.AreEqual(objectReplicationPolicy.Data.SourceAccount, sourceAccount.Id.Name); //get policy List <ObjectReplicationPolicyResource> policies = await objectReplicationPolicyCollection.GetAllAsync().ToEnumerableAsync(); objectReplicationPolicy = policies[0]; Assert.NotNull(objectReplicationPolicy); Assert.AreEqual(objectReplicationPolicy.Data.DestinationAccount, destAccount.Id.Name); Assert.AreEqual(objectReplicationPolicy.Data.SourceAccount, sourceAccount.Id.Name); //delete policy await objectReplicationPolicy.DeleteAsync(WaitUntil.Completed); }
public async Task GetBlobContainer() { string containerName = Recording.GenerateAssetName("testblob"); BlobContainerResource container = (await _blobContainerCollection.CreateOrUpdateAsync(WaitUntil.Completed, containerName, new BlobContainerData())).Value; Assert.IsEmpty(container.Data.Metadata); Assert.Null(container.Data.PublicAccess); LegalHold legalHoldModel = new LegalHold(new List <string> { "tag1", "tag2", "tag3" }); LegalHold legalHold = await container.SetLegalHoldAsync(legalHoldModel); Assert.IsTrue(legalHold.HasLegalHold); Assert.AreEqual(new List <string> { "tag1", "tag2", "tag3" }, legalHold.Tags); ImmutabilityPolicyData immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 3 }; ImmutabilityPolicyResource immutabilityPolicy = (await container.GetImmutabilityPolicy().CreateOrUpdateAsync(WaitUntil.Completed, immutabilityPolicyModel)).Value; Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Unlocked, immutabilityPolicy.Data.State); immutabilityPolicy = await container.GetImmutabilityPolicy().LockImmutabilityPolicyAsync(immutabilityPolicy.Data.Etag); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(3, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Locked, immutabilityPolicy.Data.State); immutabilityPolicyModel = new ImmutabilityPolicyData() { ImmutabilityPeriodSinceCreationInDays = 100 }; immutabilityPolicy = await container.GetImmutabilityPolicy().ExtendImmutabilityPolicyAsync(immutabilityPolicy.Data.Etag, data: immutabilityPolicyModel); Assert.NotNull(immutabilityPolicy.Id); Assert.NotNull(immutabilityPolicy.Data.ResourceType); Assert.NotNull(immutabilityPolicy.Data.Name); Assert.AreEqual(100, immutabilityPolicy.Data.ImmutabilityPeriodSinceCreationInDays); Assert.AreEqual(ImmutabilityPolicyState.Locked, immutabilityPolicy.Data.State); container = await container.GetAsync(); Assert.IsEmpty(container.Data.Metadata); Assert.AreEqual(PublicAccess.None, container.Data.PublicAccess); Assert.AreEqual(3, container.Data.ImmutabilityPolicy.UpdateHistory.Count); Assert.AreEqual(ImmutabilityPolicyUpdateType.Put, container.Data.ImmutabilityPolicy.UpdateHistory[0].Update); Assert.AreEqual(ImmutabilityPolicyUpdateType.Lock, container.Data.ImmutabilityPolicy.UpdateHistory[1].Update); Assert.AreEqual(ImmutabilityPolicyUpdateType.Extend, container.Data.ImmutabilityPolicy.UpdateHistory[2].Update); Assert.IsTrue(container.Data.LegalHold.HasLegalHold); Assert.AreEqual(3, container.Data.LegalHold.Tags.Count); Assert.AreEqual("tag1", container.Data.LegalHold.Tags[0].Tag); Assert.AreEqual("tag2", container.Data.LegalHold.Tags[1].Tag); Assert.AreEqual("tag3", container.Data.LegalHold.Tags[2].Tag); legalHold = await container.ClearLegalHoldAsync(legalHold); Assert.IsFalse(legalHold.HasLegalHold); await container.DeleteAsync(WaitUntil.Completed); }