public async Task When_Generating_Signed_Jws_Then_Operation_Is_Called() { // ARRANGE InitializeFakeObjects(); const string url = "http://google.be/"; const string kid = "kid"; var createJwsParameter = new CreateJwsParameter { Payload = new JwsPayload(), Alg = JwsAlg.RS256, Kid = kid, Url = url }; var jsonWebKey = new JsonWebKey(); createJwsParameter.Payload.Add("sub", "sub"); _jsonWebKeyHelperStub.Setup(j => j.GetJsonWebKey(It.IsAny <string>(), It.IsAny <Uri>())) .Returns(Task.FromResult <JsonWebKey>(jsonWebKey)); // ACT await _createJwsAction.Execute(createJwsParameter); // ASSERT _jwsGeneratorStub.Verify(j => j.Generate(createJwsParameter.Payload, JwsAlg.RS256, jsonWebKey)); }
public async Task When_There_Is_No_JsonWebKey_Then_Exception_Is_Thrown() { // ARRANGE InitializeFakeObjects(); const string url = "http://google.be/"; const string kid = "kid"; var createJwsParameter = new CreateJwsParameter { Payload = new JwsPayload(), Alg = JwsAlg.RS256, Kid = kid, Url = url }; createJwsParameter.Payload.Add("sub", "sub"); _jsonWebKeyHelperStub.Setup(j => j.GetJsonWebKey(It.IsAny <string>(), It.IsAny <Uri>())) .Returns(Task.FromResult <JsonWebKey>(null)); // ACT & ASSERTS var exception = await Assert.ThrowsAsync <IdentityServerManagerException>(async() => await _createJwsAction.Execute(createJwsParameter)).ConfigureAwait(false); Assert.NotNull(exception); Assert.True(exception.Code == ErrorCodes.InvalidRequestCode); Assert.True(exception.Message == string.Format(ErrorDescriptions.TheJsonWebKeyCannotBeFound, kid, url)); }
public Task <string> CreateJws(CreateJwsParameter createJwsParameter) { if (createJwsParameter == null) { throw new ArgumentNullException(nameof(createJwsParameter)); } return(_createJwsAction.Execute(createJwsParameter)); }
public void When_Passing_Null_Parameter_Then_Exceptions_Are_Thrown() { // ARRANGE InitializeFakeObjects(); var createJwsParameter = new CreateJwsParameter(); var emptyCreateJwsParameter = new CreateJwsParameter { Payload = new JwsPayload() }; // ACT & ASSERTS Assert.ThrowsAsync <ArgumentNullException>(() => _createJwsAction.Execute(null)).ConfigureAwait(false); Assert.ThrowsAsync <ArgumentNullException>(() => _createJwsAction.Execute(createJwsParameter)).ConfigureAwait(false); Assert.ThrowsAsync <ArgumentNullException>(() => _createJwsAction.Execute(emptyCreateJwsParameter)).ConfigureAwait(false); }
public void When_Executing_CreateJws_Then_Operation_Is_Called() { // ARRANGE InitializeFakeObjects(); var createJwsParameter = new CreateJwsParameter { Payload = new JwsPayload() }; // ACT _jwsActions.CreateJws(createJwsParameter).Wait(); // ASSERT _createJwsActionStub.Verify(g => g.Execute(createJwsParameter)); }
public async Task <string> Execute(CreateJwsParameter createJwsParameter) { if (createJwsParameter == null) { throw new ArgumentNullException(nameof(createJwsParameter)); } if (createJwsParameter.Payload == null || !createJwsParameter.Payload.Any()) { throw new ArgumentNullException(nameof(createJwsParameter.Payload)); } if (createJwsParameter.Alg != JwsAlg.none && (string.IsNullOrWhiteSpace(createJwsParameter.Kid) || string.IsNullOrWhiteSpace(createJwsParameter.Url))) { throw new IdentityServerManagerException(ErrorCodes.InvalidRequestCode, ErrorDescriptions.TheJwsCannotBeGeneratedBecauseMissingParameters); } Uri uri = null; if (createJwsParameter.Alg != JwsAlg.none && !Uri.TryCreate(createJwsParameter.Url, UriKind.Absolute, out uri)) { throw new IdentityServerManagerException(ErrorCodes.InvalidRequestCode, ErrorDescriptions.TheUrlIsNotWellFormed); } JsonWebKey jsonWebKey = null; if (createJwsParameter.Alg != JwsAlg.none) { jsonWebKey = await _jsonWebKeyHelper.GetJsonWebKey(createJwsParameter.Kid, uri).ConfigureAwait(false); if (jsonWebKey == null) { throw new IdentityServerManagerException( ErrorCodes.InvalidRequestCode, string.Format(ErrorDescriptions.TheJsonWebKeyCannotBeFound, createJwsParameter.Kid, uri.AbsoluteUri)); } } return(_jwsGenerator.Generate(createJwsParameter.Payload, createJwsParameter.Alg, jsonWebKey)); }
public async Task When_Generating_Unsigned_Jws_Then_Operation_Is_Called() { // ARRANGE InitializeFakeObjects(); var createJwsParameter = new CreateJwsParameter { Alg = JwsAlg.none, Payload = new JwsPayload() }; createJwsParameter.Payload.Add("sub", "sub"); // ACT await _createJwsAction.Execute(createJwsParameter); // ASSERT _jwsGeneratorStub.Verify(j => j.Generate(createJwsParameter.Payload, JwsAlg.none, null)); }
public async Task When_Passing_RS256Alg_But_No_Uri_And_Kid_Then_Exception_Is_Thrown() { // ARRANGE InitializeFakeObjects(); var createJwsParameter = new CreateJwsParameter { Payload = new JwsPayload(), Alg = JwsAlg.RS256 }; createJwsParameter.Payload.Add("sub", "sub"); // ACT & ASSERTS var exception = await Assert.ThrowsAsync <IdentityServerManagerException>(async() => await _createJwsAction.Execute(createJwsParameter)).ConfigureAwait(false); Assert.NotNull(exception); Assert.True(exception.Code == ErrorCodes.InvalidRequestCode); Assert.True(exception.Message == ErrorDescriptions.TheJwsCannotBeGeneratedBecauseMissingParameters); }
public async Task When_Url_Is_Not_Well_Formed_Then_Exception_Is_Thrown() { // ARRANGE InitializeFakeObjects(); const string url = "invalid_url"; var createJwsParameter = new CreateJwsParameter { Payload = new JwsPayload(), Alg = JwsAlg.RS256, Kid = "kid", Url = url }; createJwsParameter.Payload.Add("sub", "sub"); // ACT & ASSERTS var exception = await Assert.ThrowsAsync <IdentityServerManagerException>(async() => await _createJwsAction.Execute(createJwsParameter)).ConfigureAwait(false); Assert.NotNull(exception); Assert.True(exception.Code == ErrorCodes.InvalidRequestCode); Assert.True(exception.Message == ErrorDescriptions.TheUrlIsNotWellFormed); }