private bool WaitForTransition(FileAccessMode targetMode, TimeSpan timeout)
        {
            DateTime timeoutTime = DateTime.Now + timeout;

            if (GetBucketFileAccessModeRequest.IsTransitionState(targetMode))
            {
                throw new ArgumentException("Invalid target mode: " + targetMode);
            }

            this.TestContext.WriteLine(
                "Waiting for file access mode transition. Bucket:{0}, Target: {1}",
                this.bucketName, targetMode);

            while (true)
            {
                var request = new GetBucketFileAccessModeRequest()
                {
                    BucketName = this.bucketName
                };
                using (var response = client.GetBucketFileAccessMode(request))
                {
                    if (response.AccessMode == targetMode)
                    {
                        this.TestContext.WriteLine(
                            "Successful transition.  Target: {0}", targetMode);
                        return(true);
                    }

                    if (DateTime.Now > timeoutTime)
                    {
                        this.TestContext.WriteLine(
                            "Timeout occurred waiting for transition.  Current: {0}, Target: {1}",
                            response.AccessMode, targetMode);
                        return(false);
                    }
                }

                System.Threading.Thread.Sleep(TimeSpan.FromSeconds(5));
            }
        }