public void Create_WhenTokenIssuedSuccessEvent_WillReturnTokenIssuedSuccessEventAdapter() { // Arrange var authResponse = new AuthorizeResponse() { Request = new ValidatedAuthorizeRequest() { Client = new Client(), Subject = new ClaimsPrincipal(new ClaimsIdentity(new List <Claim>() { new Claim(JwtClaimTypes.Subject, string.Empty) })) } }; var evt = new TokenIssuedSuccessEvent(authResponse); var sut = new AdapterFactory(); // Act var adapter = sut.Create(evt); // Assert Assert.IsType <TokenIssuedSuccessEventAdapter>(adapter); }
public async Task PersistAsync_Should_Update_Account_Login_On_TokenIssuedSuccessEvent() { var account = Account.Builder() .SetId(Guid.NewGuid()) .SetEmail("*****@*****.**") .SetConfirmed(true) .SetPasswordHash(string.Empty) .SetSecurityStamp(Guid.NewGuid()) .SetCreated(DateTimeOffset.UtcNow) .Build(); var getAccountResult = GetResult <Account> .Ok(account); var claims = new[] { new Claim(JwtClaimTypes.Subject, account.Id.ToString()) }; var claimsIdentity = new ClaimsIdentity(claims); var authorizeResponse = new AuthorizeResponse { Request = new ValidatedAuthorizeRequest { Subject = new ClaimsPrincipal(claimsIdentity), ClientId = "clientId", Client = new Client { ClientName = "ClientName" }, RedirectUri = "RedirectUri", GrantType = "GrantType" } }; var evt = new TokenIssuedSuccessEvent(authorizeResponse); _accountGetterServiceMock.Setup(x => x.GetByIdAsync(It.IsAny <Guid>())).ReturnsAsync(getAccountResult); _communicationBusMock .Setup(x => x.DispatchDomainEventsAsync(It.IsAny <Account>(), It.IsAny <CancellationToken>())) .Returns(Task.CompletedTask) .Verifiable(); _accountRepositoryMock.Setup(x => x.UpdateAsync(It.IsAny <Account>())) .Returns(Task.CompletedTask) .Verifiable(); Func <Task> result = async() => await _service.PersistAsync(evt); await result.Should().NotThrowAsync <Exception>(); _communicationBusMock.Verify( x => x.DispatchDomainEventsAsync(It.IsAny <Account>(), It.IsAny <CancellationToken>()), Times.Exactly(1)); _accountRepositoryMock.Verify(x => x.UpdateAsync(It.Is <Account>(a => a.LastLogin.HasValue))); }
public TokenIssuedSuccessEventAdapter(TokenIssuedSuccessEvent evt) { _evt = evt ?? throw new ArgumentNullException(nameof(evt)); }