public async Task When_Encrypting_Jws_Then_Operation_Is_Called() { // ARRANGE InitializeFakeObjects(); const string url = "http://google.be/"; const string kid = "kid"; var createJweParameter = new CreateJweParameter { Url = url, Jws = "jws", Kid = kid, }; var jsonWebKey = new JsonWebKey(); _jsonWebKeyHelperStub.Setup(j => j.GetJsonWebKey(It.IsAny <string>(), It.IsAny <Uri>())) .Returns(Task.FromResult(jsonWebKey)); // ACT await _createJweAction.ExecuteAsync(createJweParameter).ConfigureAwait(false); // ASSERT _jweGeneratorStub.Verify(j => j.GenerateJwe(It.IsAny <string>(), It.IsAny <JweAlg>(), It.IsAny <JweEnc>(), It.IsAny <JsonWebKey>())); }
public async Task <string> ExecuteAsync(CreateJweParameter createJweParameter) { if (createJweParameter == null) { throw new ArgumentNullException(nameof(createJweParameter)); } if (string.IsNullOrWhiteSpace(createJweParameter.Url)) { throw new ArgumentNullException(nameof(createJweParameter.Url)); } if (string.IsNullOrWhiteSpace(createJweParameter.Jws)) { throw new ArgumentNullException(nameof(createJweParameter.Jws)); } if (string.IsNullOrWhiteSpace(createJweParameter.Kid)) { throw new ArgumentNullException(nameof(createJweParameter.Kid)); } Uri uri = null; if (!Uri.TryCreate(createJweParameter.Url, UriKind.Absolute, out uri)) { throw new IdentityServerManagerException( ErrorCodes.InvalidRequestCode, string.Format(ErrorDescriptions.TheUrlIsNotWellFormed, createJweParameter.Url)); } var jsonWebKey = await _jsonWebKeyHelper.GetJsonWebKey(createJweParameter.Kid, uri).ConfigureAwait(false); if (jsonWebKey == null) { throw new IdentityServerManagerException( ErrorCodes.InvalidRequestCode, string.Format(ErrorDescriptions.TheJsonWebKeyCannotBeFound, createJweParameter.Kid, uri.AbsoluteUri)); } var result = string.Empty; if (!string.IsNullOrWhiteSpace(createJweParameter.Password)) { result = _jweGenerator.GenerateJweByUsingSymmetricPassword(createJweParameter.Jws, createJweParameter.Alg, createJweParameter.Enc, jsonWebKey, createJweParameter.Password); } else { result = _jweGenerator.GenerateJwe(createJweParameter.Jws, createJweParameter.Alg, createJweParameter.Enc, jsonWebKey); } return(result); }
public Task <string> CreateJwe(CreateJweParameter createJweParameter) { if (createJweParameter == null) { throw new ArgumentNullException(nameof(createJweParameter)); } return(_createJweAction.ExecuteAsync(createJweParameter)); }
public async Task When_Passing_Not_Well_Formed_Uri_Then_Exception_Is_Thrown() { // ARRANGE InitializeFakeObjects(); const string url = "url"; var createJweParameter = new CreateJweParameter { Url = url, Jws = "jws", Kid = "kid" }; // ACT & ASSERT var exception = await Assert.ThrowsAsync <IdentityServerManagerException>(async() => await _createJweAction.ExecuteAsync(createJweParameter)).ConfigureAwait(false); Assert.NotNull(exception); Assert.True(exception.Code == ErrorCodes.InvalidRequestCode); Assert.True(exception.Message == string.Format(ErrorDescriptions.TheUrlIsNotWellFormed, url)); }
public void When_Passing_Null_Parameter_Then_Exception_Are_Thrown() { // ARRANGE InitializeFakeObjects(); var createJweParameterWithoutUrl = new CreateJweParameter(); var createJweParameterWithoutJws = new CreateJweParameter { Url = "url" }; var createJweParameterWithoutKid = new CreateJweParameter { Url = "url", Jws = "jws" }; // ACT & ASSERT Assert.ThrowsAsync <ArgumentNullException>(() => _createJweAction.ExecuteAsync(null)).ConfigureAwait(false); Assert.ThrowsAsync <ArgumentNullException>(() => _createJweAction.ExecuteAsync(createJweParameterWithoutUrl)).ConfigureAwait(false); Assert.ThrowsAsync <ArgumentNullException>(() => _createJweAction.ExecuteAsync(createJweParameterWithoutJws)).ConfigureAwait(false); Assert.ThrowsAsync <ArgumentNullException>(() => _createJweAction.ExecuteAsync(createJweParameterWithoutKid)).ConfigureAwait(false); }
public async Task When_JsonWebKey_Doesnt_Exist_Then_Exception_Is_Thrown() { // ARRANGE InitializeFakeObjects(); const string url = "http://google.be/"; const string kid = "kid"; var createJweParameter = new CreateJweParameter { Url = url, Jws = "jws", Kid = kid }; _jsonWebKeyHelperStub.Setup(j => j.GetJsonWebKey(It.IsAny <string>(), It.IsAny <Uri>())) .Returns(Task.FromResult <JsonWebKey>(null)); // ACT & ASSERT var exception = await Assert.ThrowsAsync <IdentityServerManagerException>(async() => await _createJweAction.ExecuteAsync(createJweParameter)).ConfigureAwait(false); Assert.NotNull(exception); Assert.True(exception.Code == ErrorCodes.InvalidRequestCode); Assert.True(exception.Message == string.Format(ErrorDescriptions.TheJsonWebKeyCannotBeFound, kid, url)); }