Пример #1
0
        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);
        }
Пример #2
0
        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);
                }
            }
        }
Пример #3
0
        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);
            }
        }