public async Task CloudFileShareCopyPermissionsAsync() { CloudFileShare share = GetRandomShareReference(); try { await share.CreateAsync(); FileSharePermissions permissions = await share.GetPermissionsAsync(); Assert.AreEqual(0, permissions.SharedAccessPolicies.Count); // We do not have precision at milliseconds level. Hence, we need // to recreate the start DateTime to be able to compare it later. DateTime start = DateTime.UtcNow; start = new DateTime(start.Year, start.Month, start.Day, start.Hour, start.Minute, start.Second, DateTimeKind.Utc); DateTime expiry = start.AddMinutes(30); KeyValuePair <String, SharedAccessFilePolicy> sharedAccessPolicy = new KeyValuePair <string, SharedAccessFilePolicy>("key1", new SharedAccessFilePolicy() { SharedAccessStartTime = start, SharedAccessExpiryTime = expiry, Permissions = SharedAccessFilePermissions.List, }); DateTime start2 = DateTime.UtcNow; start2 = new DateTime(start.Year, start.Month, start.Day, start.Hour, start.Minute, start.Second, DateTimeKind.Utc); DateTime expiry2 = start.AddMinutes(30); KeyValuePair <String, SharedAccessFilePolicy> sharedAccessPolicy2 = new KeyValuePair <string, SharedAccessFilePolicy>("key2", new SharedAccessFilePolicy() { SharedAccessStartTime = start2, SharedAccessExpiryTime = expiry2, Permissions = SharedAccessFilePermissions.List, }); permissions.SharedAccessPolicies.Add(sharedAccessPolicy); permissions.SharedAccessPolicies.Add(sharedAccessPolicy2); KeyValuePair <String, SharedAccessFilePolicy>[] sharedAccessPolicyArray = new KeyValuePair <string, SharedAccessFilePolicy> [2]; permissions.SharedAccessPolicies.CopyTo(sharedAccessPolicyArray, 0); Assert.AreEqual(2, sharedAccessPolicyArray.Length); Assert.AreEqual(sharedAccessPolicy, sharedAccessPolicyArray[0]); Assert.AreEqual(sharedAccessPolicy2, sharedAccessPolicyArray[1]); } finally { share.DeleteIfExistsAsync().Wait(); } }
public async Task CloudFileShareSetPermissionsOverloadAsync() { CloudFileShare share = GetRandomShareReference(); try { await share.CreateAsync(); FileSharePermissions permissions = await share.GetPermissionsAsync(); Assert.AreEqual(0, permissions.SharedAccessPolicies.Count); // We do not have precision at milliseconds level. Hence, we need // to recreate the start DateTime to be able to compare it later. DateTime start = DateTime.UtcNow; start = new DateTime(start.Year, start.Month, start.Day, start.Hour, start.Minute, start.Second, DateTimeKind.Utc); DateTime expiry = start.AddMinutes(30); KeyValuePair <String, SharedAccessFilePolicy> sharedAccessPolicy = new KeyValuePair <string, SharedAccessFilePolicy>("key1", new SharedAccessFilePolicy() { SharedAccessStartTime = start, SharedAccessExpiryTime = expiry, Permissions = SharedAccessFilePermissions.List, }); permissions.SharedAccessPolicies.Add(sharedAccessPolicy); await share.SetPermissionsAsync(permissions); await Task.Delay(30 * 1000); CloudFileShare share2 = share.ServiceClient.GetShareReference(share.Name); permissions = await share2.GetPermissionsAsync(); Assert.AreEqual(1, permissions.SharedAccessPolicies.Count); Assert.IsTrue(permissions.SharedAccessPolicies["key1"].SharedAccessStartTime.HasValue); Assert.AreEqual(start, permissions.SharedAccessPolicies["key1"].SharedAccessStartTime.Value.UtcDateTime); Assert.IsTrue(permissions.SharedAccessPolicies["key1"].SharedAccessExpiryTime.HasValue); Assert.AreEqual(expiry, permissions.SharedAccessPolicies["key1"].SharedAccessExpiryTime.Value.UtcDateTime); Assert.AreEqual(SharedAccessFilePermissions.List, permissions.SharedAccessPolicies["key1"].Permissions); } finally { share.DeleteIfExistsAsync().Wait(); } }
public async Task CloudFileShareTryGetValuePermissions() { CloudFileShare share = GetRandomShareReference(); try { await share.CreateAsync(); FileSharePermissions permissions = await share.GetPermissionsAsync(); Assert.AreEqual(0, permissions.SharedAccessPolicies.Count); // We do not have precision at milliseconds level. Hence, we need // to recreate the start DateTime to be able to compare it later. DateTime start = DateTime.UtcNow; start = new DateTime(start.Year, start.Month, start.Day, start.Hour, start.Minute, start.Second, DateTimeKind.Utc); DateTime expiry = start.AddMinutes(30); KeyValuePair <String, SharedAccessFilePolicy> sharedAccessPolicy = new KeyValuePair <string, SharedAccessFilePolicy>("key1", new SharedAccessFilePolicy() { SharedAccessStartTime = start, SharedAccessExpiryTime = expiry, Permissions = SharedAccessFilePermissions.List, }); DateTime start2 = DateTime.UtcNow; start2 = new DateTime(start2.Year, start2.Month, start2.Day, start2.Hour, start2.Minute, start2.Second, DateTimeKind.Utc); DateTime expiry2 = start2.AddMinutes(30); KeyValuePair <String, SharedAccessFilePolicy> sharedAccessPolicy2 = new KeyValuePair <string, SharedAccessFilePolicy>("key2", new SharedAccessFilePolicy() { SharedAccessStartTime = start2, SharedAccessExpiryTime = expiry2, Permissions = SharedAccessFilePermissions.List, }); permissions.SharedAccessPolicies.Add(sharedAccessPolicy); permissions.SharedAccessPolicies.Add(sharedAccessPolicy2); await share.SetPermissionsAsync(permissions); await Task.Delay(3 * 1000); Assert.AreEqual(2, permissions.SharedAccessPolicies.Count); permissions = await share.GetPermissionsAsync(); SharedAccessFilePolicy retrPolicy; permissions.SharedAccessPolicies.TryGetValue("key1", out retrPolicy); Assert.AreEqual(sharedAccessPolicy.Value.Permissions, retrPolicy.Permissions); Assert.AreEqual(sharedAccessPolicy.Value.SharedAccessStartTime, retrPolicy.SharedAccessStartTime); Assert.AreEqual(sharedAccessPolicy.Value.SharedAccessExpiryTime, retrPolicy.SharedAccessExpiryTime); SharedAccessFilePolicy retrPolicy2; permissions.SharedAccessPolicies.TryGetValue("key2", out retrPolicy2); Assert.AreEqual(sharedAccessPolicy2.Value.Permissions, retrPolicy2.Permissions); Assert.AreEqual(sharedAccessPolicy2.Value.SharedAccessStartTime, retrPolicy2.SharedAccessStartTime); Assert.AreEqual(sharedAccessPolicy2.Value.SharedAccessExpiryTime, retrPolicy2.SharedAccessExpiryTime); } finally { share.DeleteIfExistsAsync().Wait(); } }
public Task<FileSharePermissions> GetSharePermissionsAsync(CloudFileShare share, AccessCondition accessCondition, FileRequestOptions options, OperationContext operationContext, CancellationToken cancellationToken) { return share.GetPermissionsAsync(accessCondition, options, operationContext, cancellationToken); }