< Summary

Class:Azure.Data.Tables.TableExtensions
Assembly:Azure.Data.Tables
File(s):C:\Git\azure-sdk-for-net\sdk\tables\Azure.Data.Tables\src\Sas\TableAccountSasPermissions.cs
C:\Git\azure-sdk-for-net\sdk\tables\Azure.Data.Tables\src\Sas\TableAccountSasResourceTypes.cs
C:\Git\azure-sdk-for-net\sdk\tables\Azure.Data.Tables\src\Sas\TableSasPermissions.cs
Covered lines:32
Uncovered lines:0
Coverable lines:32
Total lines:263
Line coverage:100% (32 of 32)
Covered branches:26
Total branches:26
Branch coverage:100% (26 of 26)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
ToPermissionsString(...)-100%100%
ToPermissionsString(...)-100%100%
ToPermissionsString(...)-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\tables\Azure.Data.Tables\src\Sas\TableAccountSasPermissions.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.Text;
 6using Azure.Data.Tables.Sas;
 7
 8namespace Azure.Data.Tables.Sas
 9{
 10    /// <summary>
 11    /// <see cref="TableAccountSasPermissions"/> contains the list of
 12    /// permissions that can be set for a file's access policy.  Use
 13    /// <see cref="TableAccountSasBuilder.SetPermissions(TableAccountSasPermissions)"/>
 14    /// to set the permissions on the <see cref="TableAccountSasBuilder"/>.
 15    /// </summary>
 16    [Flags]
 17    public enum TableAccountSasPermissions
 18    {
 19        /// <summary>
 20        /// Indicates that Read is permitted.
 21        /// </summary>
 22        Read = 1,
 23
 24        /// <summary>
 25        /// Indicates that Write is permitted.
 26        /// </summary>
 27        Write = 2,
 28
 29        /// <summary>
 30        /// Indicates that Delete is permitted.
 31        /// </summary>
 32        Delete = 4,
 33
 34        /// <summary>
 35        /// Indicates that List is permitted.
 36        /// </summary>
 37        List = 8,
 38
 39        /// <summary>
 40        /// Indicates that Add is permitted.
 41        /// </summary>
 42        Add = 16,
 43
 44        /// <summary>
 45        /// Indicates that Update is permitted.
 46        /// </summary>
 47        Update = 64,
 48
 49        /// <summary>
 50        /// Indicates that all permissions are set.
 51        /// </summary>
 52        All = ~0
 53    }
 54}
 55
 56namespace Azure.Data.Tables
 57{
 58    /// <summary>
 59    /// Table enum extensions.
 60    /// </summary>
 61    internal static partial class TableExtensions
 62    {
 63
 64        /// <summary>
 65        /// Create a permissions string to provide
 66        /// <see cref="TableAccountSasBuilder.Permissions"/>.
 67        /// </summary>
 68        /// <returns>A permissions string.</returns>
 69        internal static string ToPermissionsString(this TableAccountSasPermissions permissions)
 70        {
 4871            var sb = new StringBuilder();
 4872            if ((permissions & TableAccountSasPermissions.Read) == TableAccountSasPermissions.Read)
 73            {
 3274                sb.Append(TableConstants.Sas.Permissions.Read);
 75            }
 4876            if ((permissions & TableAccountSasPermissions.Write) == TableAccountSasPermissions.Write)
 77            {
 4078                sb.Append(TableConstants.Sas.Permissions.Write);
 79            }
 4880            if ((permissions & TableAccountSasPermissions.Delete) == TableAccountSasPermissions.Delete)
 81            {
 4082                sb.Append(TableConstants.Sas.Permissions.Delete);
 83            }
 4884            if ((permissions & TableAccountSasPermissions.List) == TableAccountSasPermissions.List)
 85            {
 3286                sb.Append(TableConstants.Sas.Permissions.List);
 87            }
 4888            if ((permissions & TableAccountSasPermissions.Add) == TableAccountSasPermissions.Add)
 89            {
 3290                sb.Append(TableConstants.Sas.Permissions.Add);
 91            }
 4892            if ((permissions & TableAccountSasPermissions.Update) == TableAccountSasPermissions.Update)
 93            {
 3294                sb.Append(TableConstants.Sas.Permissions.Update);
 95            }
 4896            return sb.ToString();
 97        }
 98    }
 99}

C:\Git\azure-sdk-for-net\sdk\tables\Azure.Data.Tables\src\Sas\TableAccountSasResourceTypes.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.Text;
 6using Azure.Data.Tables.Sas;
 7
 8namespace Azure.Data.Tables.Sas
 9{
 10    /// <summary>
 11    /// Specifies the resource types accessible from an account level shared
 12    /// access signature.
 13    /// </summary>
 14    [Flags]
 15    public enum TableAccountSasResourceTypes
 16    {
 17        /// <summary>
 18        /// Indicates whether service-level APIs are accessible
 19        /// from this shared access signature (e.g., Get/Set Service
 20        /// Properties, Get Service Stats, List Containers/Queues/Tables/
 21        /// Shares).
 22        /// </summary>
 23        Service = 1,
 24
 25        /// <summary>
 26        /// Indicates whether blob container-level APIs are accessible
 27        /// from this shared access signature (e.g., Create/Delete Container,
 28        /// Create/Delete Queue, Create/Delete Table, Create/Delete Share, List
 29        /// Blobs/Files and Directories).
 30        /// </summary>
 31        Container = 2,
 32
 33#pragma warning disable CA1720 // Identifier contains type name
 34        /// <summary>
 35        /// Indicates whether object-level APIs for blobs, queue
 36        /// messages, and files are accessible from this shared access
 37        /// signature (e.g. Put Blob, Query Entity, Get Messages, Create File,
 38        /// etc.).
 39        /// </summary>
 40        Object = 4,
 41#pragma warning restore CA1720 // Identifier contains type name
 42
 43        /// <summary>
 44        /// Indicates all service-level APIs are accessible from this shared
 45        /// access signature.
 46        /// </summary>
 47        All = ~0
 48    }
 49}
 50
 51namespace Azure.Data.Tables
 52{
 53    internal static partial class TableExtensions
 54    {
 55        /// <summary>
 56        /// Creates a string representing which resource types are allowed
 57        /// for <see cref="TableAccountSasBuilder.ResourceTypes"/>.
 58        /// </summary>
 59        /// <returns>
 60        /// A string representing which resource types are allowed.
 61        /// </returns>
 62        /// <remarks>
 63        /// The order here matches the order used by the portal when generating SAS signatures.
 64        /// </remarks>
 65        internal static string ToPermissionsString(this TableAccountSasResourceTypes resourceTypes)
 66        {
 6467            var sb = new StringBuilder();
 6468            if ((resourceTypes & TableAccountSasResourceTypes.Service) == TableAccountSasResourceTypes.Service)
 69            {
 6470                sb.Append(TableConstants.Sas.TableAccountResources.Service);
 71            }
 6472            if ((resourceTypes & TableAccountSasResourceTypes.Container) == TableAccountSasResourceTypes.Container)
 73            {
 4874                sb.Append(TableConstants.Sas.TableAccountResources.Container);
 75            }
 6476            if ((resourceTypes & TableAccountSasResourceTypes.Object) == TableAccountSasResourceTypes.Object)
 77            {
 3278                sb.Append(TableConstants.Sas.TableAccountResources.Object);
 79            }
 6480            return sb.ToString();
 81        }
 82    }
 83}

C:\Git\azure-sdk-for-net\sdk\tables\Azure.Data.Tables\src\Sas\TableSasPermissions.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.Text;
 6using Azure.Data.Tables.Sas;
 7
 8namespace Azure.Data.Tables.Sas
 9{
 10    /// <summary>
 11    /// <see cref="TableSasPermissions"/> contains the list of
 12    /// permissions that can be set for a file's access policy.  Use
 13    /// <see cref="TableSasBuilder.SetPermissions(TableSasPermissions)"/>
 14    /// to set the permissions on the <see cref="TableSasBuilder"/>.
 15    /// </summary>
 16    [Flags]
 17    public enum TableSasPermissions
 18    {
 19        /// <summary>
 20        /// Indicates that Read is permitted.
 21        /// </summary>
 22        Read = 1,
 23
 24        /// <summary>
 25        /// Indicates that Add is permitted.
 26        /// </summary>
 27        Add = 2,
 28
 29        /// <summary>
 30        /// Indicates that Update is permitted.
 31        /// </summary>
 32        Update = 4,
 33
 34        /// <summary>
 35        /// Indicates that Delete is permitted.
 36        /// </summary>
 37        Delete = 8,
 38
 39        /// <summary>
 40        /// Indicates that all permissions are set.
 41        /// </summary>
 42        All = ~0
 43    }
 44}
 45
 46namespace Azure.Data.Tables
 47{
 48    /// <summary>
 49    /// Table enum extensions.
 50    /// </summary>
 51    internal static partial class TableExtensions
 52    {
 53
 54        /// <summary>
 55        /// Create a permissions string to provide
 56        /// <see cref="TableSasBuilder.Permissions"/>.
 57        /// </summary>
 58        /// <returns>A permissions string.</returns>
 59        internal static string ToPermissionsString(this TableSasPermissions permissions)
 60        {
 2461            var sb = new StringBuilder();
 2462            if ((permissions & TableSasPermissions.Read) == TableSasPermissions.Read)
 63            {
 2464                sb.Append(TableConstants.Sas.Permissions.Read);
 65            }
 2466            if ((permissions & TableSasPermissions.Add) == TableSasPermissions.Add)
 67            {
 1668                sb.Append(TableConstants.Sas.Permissions.Add);
 69            }
 2470            if ((permissions & TableSasPermissions.Update) == TableSasPermissions.Update)
 71            {
 1672                sb.Append(TableConstants.Sas.Permissions.Update);
 73            }
 2474            if ((permissions & TableSasPermissions.Delete) == TableSasPermissions.Delete)
 75            {
 1676                sb.Append(TableConstants.Sas.Permissions.Delete);
 77            }
 2478            return sb.ToString();
 79        }
 80    }
 81}