< Summary

Class:Azure.Security.KeyVault.Keys.KeyOperation
Assembly:Azure.Security.KeyVault.Keys
File(s):C:\Git\azure-sdk-for-net\sdk\keyvault\Azure.Security.KeyVault.Keys\src\KeyOperation.cs
Covered lines:12
Uncovered lines:4
Coverable lines:16
Total lines:97
Line coverage:75% (12 of 16)
Covered branches:1
Total branches:6
Branch coverage:16.6% (1 of 6)

Metrics

MethodCyclomatic complexity Line coverage Branch coverage
.ctor(...)-100%50%
get_Encrypt()-100%100%
get_Decrypt()-100%100%
get_Sign()-100%100%
get_Verify()-100%100%
get_WrapKey()-100%100%
get_UnwrapKey()-100%100%
get_Import()-0%100%
op_Equality(...)-100%100%
op_Inequality(...)-0%100%
op_Implicit(...)-100%100%
Equals(...)-0%0%
Equals(...)-100%100%
GetHashCode()-0%0%
ToString()-100%100%

File(s)

C:\Git\azure-sdk-for-net\sdk\keyvault\Azure.Security.KeyVault.Keys\src\KeyOperation.cs

#LineLine coverage
 1// Copyright (c) Microsoft Corporation. All rights reserved.
 2// Licensed under the MIT License.
 3
 4using System;
 5using System.ComponentModel;
 6using Azure.Security.KeyVault.Keys.Cryptography;
 7
 8namespace Azure.Security.KeyVault.Keys
 9{
 10    /// <summary>
 11    /// An operation that can be performed with the key.
 12    /// </summary>
 13    public readonly struct KeyOperation : IEquatable<KeyOperation>
 14    {
 15        private readonly string _value;
 16
 17        /// <summary>
 18        /// Initializes a new instance of the <see cref="KeyOperation"/> structure.
 19        /// </summary>
 20        /// <param name="value">The string value of the instance.</param>
 21        public KeyOperation(string value)
 22        {
 234023            _value = value ?? throw new ArgumentNullException(nameof(value));
 234024        }
 25
 26        /// <summary>
 27        /// Gets a value that indicates the key can be used to encrypt with the <see cref="CryptographyClient.EncryptAsy
 28        /// </summary>
 17829        public static KeyOperation Encrypt { get; } = new KeyOperation("encrypt");
 30
 31        /// <summary>
 32        /// Gets a value that indicates the key can be used to decrypt with the <see cref="CryptographyClient.DecryptAsy
 33        /// </summary>
 17434        public static KeyOperation Decrypt { get; } = new KeyOperation("decrypt");
 35
 36        /// <summary>
 37        /// Gets a value that indicates the key can be used to sign with the <see cref="CryptographyClient.SignAsync"/> 
 38        /// </summary>
 51239        public static KeyOperation Sign { get; } = new KeyOperation("sign");
 40
 41        /// <summary>
 42        /// Gets a value that indicates the key can be used to verify with the <see cref="CryptographyClient.VerifyAsync
 43        /// </summary>
 40444        public static KeyOperation Verify { get; } = new KeyOperation("verify");
 45
 46        /// <summary>
 47        /// Gets a value that indicates the key can be used to wrap another key with the <see cref="CryptographyClient.W
 48        /// </summary>
 11049        public static KeyOperation WrapKey { get; } = new KeyOperation("wrapKey");
 50
 51        /// <summary>
 52        /// Gets a value that indicates the key can be used to unwrap another key with the <see cref="CryptographyClient
 53        /// </summary>
 9854        public static KeyOperation UnwrapKey { get; } = new KeyOperation("unwrapKey");
 55
 56        /// <summary>
 57        /// Gets a value that indicates the key can be imported during creation using the <see cref="KeyClient.ImportKey
 58        /// </summary>
 059        public static KeyOperation Import { get; } = new KeyOperation("import");
 60
 61        /// <summary>
 62        /// Determines if two <see cref="KeyOperation"/> values are the same.
 63        /// </summary>
 64        /// <param name="left">The first <see cref="KeyOperation"/> to compare.</param>
 65        /// <param name="right">The second <see cref="KeyOperation"/> to compare.</param>
 66        /// <returns>True if <paramref name="left"/> and <paramref name="right"/> are the same; otherwise, false.</retur
 106867        public static bool operator ==(KeyOperation left, KeyOperation right) => left.Equals(right);
 68
 69        /// <summary>
 70        /// Determines if two <see cref="KeyOperation"/> values are different.
 71        /// </summary>
 72        /// <param name="left">The first <see cref="KeyOperation"/> to compare.</param>
 73        /// <param name="right">The second <see cref="KeyOperation"/> to compare.</param>
 74        /// <returns>True if <paramref name="left"/> and <paramref name="right"/> are different; otherwise, false.</retu
 075        public static bool operator !=(KeyOperation left, KeyOperation right) => !left.Equals(right);
 76
 77        /// <summary>
 78        /// Converts a string to a <see cref="KeyOperation"/>.
 79        /// </summary>
 80        /// <param name="value">The string value to convert.</param>
 231481        public static implicit operator KeyOperation(string value) => new KeyOperation(value);
 82
 83        /// <inheritdoc/>
 84        [EditorBrowsable(EditorBrowsableState.Never)]
 085        public override bool Equals(object obj) => obj is KeyOperation other && Equals(other);
 86
 87        /// <inheritdoc/>
 169888        public bool Equals(KeyOperation other) => string.Equals(_value, other._value, StringComparison.Ordinal);
 89
 90        /// <inheritdoc/>
 91        [EditorBrowsable(EditorBrowsableState.Never)]
 092        public override int GetHashCode() => _value?.GetHashCode() ?? 0;
 93
 94        /// <inheritdoc/>
 33895        public override string ToString() => _value;
 96    }
 97}