diff --git a/Notation.Plugin.AzureKeyVault.Tests/Command/GenerateSignatureTests.cs b/Notation.Plugin.AzureKeyVault.Tests/Command/GenerateSignatureTests.cs index 461029f0..7a690089 100644 --- a/Notation.Plugin.AzureKeyVault.Tests/Command/GenerateSignatureTests.cs +++ b/Notation.Plugin.AzureKeyVault.Tests/Command/GenerateSignatureTests.cs @@ -190,5 +190,31 @@ public void Constructor_Invalid() Assert.Throws(() => generateSignatureCommand.RunAsync().GetAwaiter().GetResult()); } + + [Fact] + public void RunAsync_OtherRequestFailedException(){ + // Arrange + var keyId = "https://testvault.vault.azure.net/keys/testkey/123"; + var expectedKeySpec = "RSA-2048"; + var mockSignature = new byte[] { 0x01, 0x02, 0x03, 0x04 }; + var mockKeyVaultClient = new Mock(); + + // mock GetCertificateChainAsync + var mockCertChain = CertificateBundle.Create(Path.Combine(Directory.GetCurrentDirectory(), "TestData", "cert_chain.pem")); + mockKeyVaultClient.Setup(client => client.GetCertificateChainAsync()) + .ThrowsAsync(new Azure.RequestFailedException("RequestFailedException")); + + var request = new GenerateSignatureRequest( + contractVersion: "1.0", + keyId: keyId, + pluginConfig: new Dictionary(){}, + keySpec: expectedKeySpec, + hashAlgorithm: "SHA-256", + payload: Encoding.UTF8.GetBytes("Cg==")); + + var generateSignatureCommand = new GenerateSignature(request, mockKeyVaultClient.Object); + + Assert.Throws(() => generateSignatureCommand.RunAsync().GetAwaiter().GetResult()); + } } -} \ No newline at end of file +}