internal void CreateStoredAccessPolicy(string policyName, string permission, DateTime?startTime, DateTime?expiryTime, CloudBlobContainer container, bool ifCleanUpPolicy = true) { if (ifCleanUpPolicy) { Utility.ClearStoredAccessPolicy <CloudBlobContainer>(container); } Test.Assert(CommandAgent.NewAzureStorageContainerStoredAccessPolicy(container.Name, policyName, permission, startTime, expiryTime), "Create stored access policy in container should succeed"); Test.Info("Created stored access policy:{0}", policyName); }
internal void SetStoredAccessPolicyAndValidate(Utility.RawStoredAccessPolicy policy1, Utility.RawStoredAccessPolicy policy2, string containerName = null, bool ifCleanupPolicy = true, bool ifCleanupContainer = true) { CloudBlobContainer container = blobUtil.CreateContainer(containerName); if (ifCleanupPolicy) { Utility.ClearStoredAccessPolicy <CloudBlobContainer>(container); } policy2.PolicyName = policy1.PolicyName; try { CommandAgent.NewAzureStorageContainerStoredAccessPolicy(container.Name, policy1.PolicyName, policy1.Permission, policy1.StartTime, policy1.ExpiryTime); Test.Assert(CommandAgent.SetAzureStorageContainerStoredAccessPolicy(container.Name, policy2.PolicyName, policy2.Permission, policy2.StartTime, policy2.ExpiryTime), "Set stored access policy in container should succeed"); Test.Info("Set stored access policy:{0}", policy2.PolicyName); //get the policy and validate SharedAccessBlobPolicies expectedPolicies = new SharedAccessBlobPolicies(); if (policy2.StartTime == null) { policy2.StartTime = policy1.StartTime; } if (policy2.ExpiryTime == null) { policy2.ExpiryTime = policy1.ExpiryTime; } if (policy2.Permission == null) { policy2.Permission = policy1.Permission; } expectedPolicies.Add(policy2.PolicyName, Utility.SetupSharedAccessPolicy <SharedAccessBlobPolicy>(policy2.StartTime, policy2.ExpiryTime, policy2.Permission)); Utility.WaitForPolicyBecomeValid <CloudBlobContainer>(container, policy2); Utility.ValidateStoredAccessPolicies <SharedAccessBlobPolicy>(container.GetPermissions().SharedAccessPolicies, expectedPolicies); //validate the output SharedAccessBlobPolicy policy = Utility.SetupSharedAccessPolicy <SharedAccessBlobPolicy>(policy2.StartTime, policy2.ExpiryTime, policy2.Permission); Collection <Dictionary <string, object> > comp = new Collection <Dictionary <string, object> >(); comp.Add(Utility.ConstructGetPolicyOutput <SharedAccessBlobPolicy>(policy, policy2.PolicyName)); CommandAgent.OutputValidation(comp); } finally { if (ifCleanupContainer) { blobUtil.RemoveContainer(container); } } }
public void NewPolicyInvalidParameter() { DateTime? startTime = DateTime.Today.AddDays(1); DateTime? expiryTime = DateTime.Today.AddDays(-1); CloudBlobContainer container = blobUtil.CreateContainer(); Utility.ClearStoredAccessPolicy <CloudBlobContainer>(container); try { Test.Assert(!CommandAgent.NewAzureStorageContainerStoredAccessPolicy("$logs", Utility.GenNameString("p", 5), null, null, null), "Create stored access policy $logs container should fail"); ExpectedContainErrorMessage("The account being accessed does not have sufficient permissions to execute this operation."); Test.Assert(!CommandAgent.NewAzureStorageContainerStoredAccessPolicy("CONTAINER", Utility.GenNameString("p", 5), null, null, null), "Create stored access policy for invalid container name CONTAINER should fail"); if (lang == Language.PowerShell) { ExpectedContainErrorMessage("The specifed resource name contains invalid characters."); } else { ExpectedContainErrorMessage("Container name format is incorrect"); } Test.Assert(!CommandAgent.NewAzureStorageContainerStoredAccessPolicy(container.Name, Utility.GenNameString("p", 5), null, startTime, expiryTime), "Create stored access policy for ExpiryTime earlier than StartTime should fail"); ExpectedContainErrorMessage("The expiry time of the specified access policy should be greater than start time"); Test.Assert(!CommandAgent.NewAzureStorageContainerStoredAccessPolicy(container.Name, Utility.GenNameString("p", 5), null, startTime, startTime), "Create stored access policy for ExpiryTime same as StartTime should fail"); ExpectedContainErrorMessage("The expiry time of the specified access policy should be greater than start time"); Test.Assert(!CommandAgent.NewAzureStorageContainerStoredAccessPolicy(container.Name, Utility.GenNameString("p", 5), "x", null, null), "Create stored access policy with invalid permission should fail"); if (lang == Language.PowerShell) { ExpectedContainErrorMessage("Invalid access permission"); } else { ExpectedContainErrorMessage("Given \"x\" is invalid, supported values are: r, a, c, w, d, l"); } Test.Assert(!CommandAgent.NewAzureStorageContainerStoredAccessPolicy(container.Name, FileNamingGenerator.GenerateValidASCIIOptionValue(65), null, null, null), "Create stored access policy with invalid permission should fail"); if (lang == Language.PowerShell) { ExpectedContainErrorMessage("Valid names should be 1 through 64 characters long."); } else { ExpectedContainErrorMessage("Reason: Signed identifier ID cannot be empty or over 64 characters in length"); } for (int i = 1; i <= 5; i++) { CommandAgent.NewAzureStorageContainerStoredAccessPolicy(container.Name, Utility.GenNameString("p", i), null, null, null); } Test.Assert(!CommandAgent.NewAzureStorageContainerStoredAccessPolicy(container.Name, Utility.GenNameString("p", 6), null, null, null), "Create moret than 5 stored access policies should fail"); if (lang == Language.PowerShell) { ExpectedContainErrorMessage("Too many '6' shared access policy identifiers provided"); } else { ExpectedContainErrorMessage("A maximum of 5 access policies may be set"); } blobUtil.RemoveContainer(container); Test.Assert(!CommandAgent.NewAzureStorageContainerStoredAccessPolicy(container.Name, Utility.GenNameString("p", 5), null, null, null), "Create stored access policy against non-existing container should fail"); if (lang == Language.PowerShell) { ExpectedContainErrorMessage("does not exist"); } else { ExpectedContainErrorMessage("The specified container does not exist"); } } finally { blobUtil.RemoveContainer(container); } }