< Summary

Class:Azure.Storage.Sas.BlobSasQueryParameters
Assembly:Azure.Storage.Blobs
File(s):C:\Git\azure-sdk-for-net\sdk\storage\Azure.Storage.Blobs\src\Sas\BlobSasQueryParameters.cs
Covered lines:41
Uncovered lines:3
Coverable lines:44
Total lines:147
Line coverage:93.1% (41 of 44)
Covered branches:6
Total branches:12
Branch coverage:50% (6 of 12)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
get_KeyProperties()-100%100%
get_KeyObjectId()-100%50%
get_KeyTenantId()-100%50%
get_KeyStartsOn()-100%50%
get_KeyExpiresOn()-100%50%
get_KeyService()-100%50%
get_KeyVersion()-100%50%
get_Empty()-0%100%
.ctor()-0%100%
.ctor(...)-100%100%
.ctor(...)-100%100%
ToString()-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\storage\Azure.Storage.Blobs\src\Sas\BlobSasQueryParameters.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.Collections.Generic;
 6using System.Text;
 7
 8namespace Azure.Storage.Sas
 9{
 10    /// <summary>
 11    /// A <see cref="BlobSasQueryParameters"/> object represents the components
 12    /// that make up an Azure Storage Shared Access Signature's query
 13    /// parameters.  You can construct a new instance using
 14    /// <see cref="BlobSasBuilder"/>.
 15    ///
 16    /// For more information,
 17    /// <see href="https://docs.microsoft.com/rest/api/storageservices/create-service-sas">
 18    /// Create a service SAS</see>.
 19    /// </summary>
 20    public sealed class BlobSasQueryParameters : SasQueryParameters
 21    {
 91222        internal UserDelegationKeyProperties KeyProperties { get; set; }
 23
 24        /// <summary>
 25        /// Gets the Azure Active Directory object ID in GUID format.
 26        /// </summary>
 2427        public string KeyObjectId => KeyProperties?.ObjectId;
 28
 29        /// <summary>
 30        /// Gets the Azure Active Directory tenant ID in GUID format
 31        /// </summary>
 2432        public string KeyTenantId => KeyProperties?.TenantId;
 33
 34        /// <summary>
 35        /// Gets the time at which the key becomes valid.
 36        /// </summary>
 2437        public DateTimeOffset KeyStartsOn => KeyProperties == null ? default : KeyProperties.StartsOn;
 38
 39        /// <summary>
 40        /// Gets the time at which the key becomes expires.
 41        /// </summary>
 2442        public DateTimeOffset KeyExpiresOn => KeyProperties == null ? default : KeyProperties.ExpiresOn;
 43
 44        /// <summary>
 45        /// Gets the Storage service that accepts the key.
 46        /// </summary>
 2447        public string KeyService => KeyProperties?.Service;
 48
 49        /// <summary>
 50        /// Gets the Storage service version that created the key.
 51        /// </summary>
 1252        public string KeyVersion => KeyProperties?.Version;
 53
 54        /// <summary>
 55        /// Gets empty shared access signature query parameters.
 56        /// </summary>
 057        public static new BlobSasQueryParameters Empty => new BlobSasQueryParameters();
 58
 59        internal BlobSasQueryParameters()
 060            : base()
 61        {
 062        }
 63
 64        /// <summary>
 65        /// Creates a new BlobSasQueryParameters instance.
 66        /// </summary>
 67        internal BlobSasQueryParameters (
 68            string version,
 69            AccountSasServices? services,
 70            AccountSasResourceTypes? resourceTypes,
 71            SasProtocol protocol,
 72            DateTimeOffset startsOn,
 73            DateTimeOffset expiresOn,
 74            SasIPRange ipRange,
 75            string identifier,
 76            string resource,
 77            string permissions,
 78            string signature,
 79            string keyOid = default,
 80            string keyTid = default,
 81            DateTimeOffset keyStart = default,
 82            DateTimeOffset keyExpiry = default,
 83            string keyService = default,
 84            string keyVersion = default,
 85            string cacheControl = default,
 86            string contentDisposition = default,
 87            string contentEncoding = default,
 88            string contentLanguage = default,
 89            string contentType = default)
 18890            : base(
 18891                version,
 18892                services,
 18893                resourceTypes,
 18894                protocol,
 18895                startsOn,
 18896                expiresOn,
 18897                ipRange,
 18898                identifier,
 18899                resource,
 188100                permissions,
 188101                signature,
 188102                cacheControl,
 188103                contentDisposition,
 188104                contentEncoding,
 188105                contentLanguage,
 188106                contentType)
 107        {
 188108            KeyProperties = new UserDelegationKeyProperties
 188109            {
 188110                ObjectId = keyOid,
 188111                TenantId = keyTid,
 188112                StartsOn = keyStart,
 188113                ExpiresOn = keyExpiry,
 188114                Service = keyService,
 188115                Version = keyVersion
 188116            };
 188117        }
 118
 119        /// <summary>
 120        /// Creates a new instance of the <see cref="BlobSasQueryParameters"/>
 121        /// type based on the supplied query parameters <paramref name="values"/>.
 122        /// All SAS-related query parameters will be removed from
 123        /// <paramref name="values"/>.
 124        /// </summary>
 125        /// <param name="values">URI query parameters</param>
 126        internal BlobSasQueryParameters (
 127            IDictionary<string, string> values)
 148128            : base(values)
 129        {
 148130            this.ParseKeyProperties(values);
 148131        }
 132
 133        /// <summary>
 134        /// Convert the SAS query parameters into a URL encoded query string.
 135        /// </summary>
 136        /// <returns>
 137        /// A URL encoded query string representing the SAS.
 138        /// </returns>
 139        public override string ToString()
 140        {
 276141            StringBuilder sb = new StringBuilder();
 276142            KeyProperties.AppendProperties(sb);
 276143            this.AppendProperties(sb);
 276144            return sb.ToString();
 145        }
 146    }
 147}