/// <summary> /// Simulates a GetKeyAsync method of KeyVault SDK. /// </summary> /// <param name="name"></param> /// <param name="version"></param> /// <param name="cancellationToken"></param> /// <returns></returns> public override Task <Response <KeyVaultKey> > GetKeyAsync(string name, string version = null, CancellationToken cancellationToken = default) { Console.WriteLine("Accessing Key via Test GetKeyAsync"); // simulate a RequestFailed Exception if (name.Contains(KeyVaultTestConstants.ValidateRequestFailedEx)) { throw new RequestFailedException("Service Unavailable"); } // simulate a case to return a Null Key. if (name.Contains(KeyVaultTestConstants.ValidateNullKeyVaultKey)) { Mock <Response <KeyVaultKey> > mockedResponseNullKeyVault = new Mock <Response <KeyVaultKey> >(); mockedResponseNullKeyVault.SetupGet(r => r.Value).Returns((KeyVaultKey)null); return(Task.FromResult(mockedResponseNullKeyVault.Object)); } this.keyinfo.TryGetValue(name, out string recoverlevel); KeyProperties tp = KeyModelFactory.KeyProperties(recoveryLevel: recoverlevel); JsonWebKey jwk = KeyModelFactory.JsonWebKey(KeyType.Ec, curveName: "invalid", keyOps: new[] { KeyOperation.Sign, KeyOperation.Verify }); KeyVaultKey mockKey = KeyModelFactory.KeyVaultKey(properties: tp, key: jwk); Mock <Response <KeyVaultKey> > mockedResponseKeyVault = new Mock <Response <KeyVaultKey> >(); mockedResponseKeyVault.SetupGet(r => r.Value).Returns(mockKey); return(Task.FromResult(mockedResponseKeyVault.Object)); }