public static async Task SignInAsync_FailedSignInWithNullContext_RaisesLoginFailureEvent()
        {
            const string username = "******";

            int eventCount = 0;
            UserLoginFailureEvent raisedEvent = null;

            void EventCallback(UserLoginFailureEvent evt)
            {
                eventCount++;
                raisedEvent = evt;
            }

            using var loginService = new LoginServiceBuilder()
                                     .WithFindUserResult(ApplicationUserBuilder.Create().WithUsername(username).Build())
                                     .WithEventServiceCallback <UserLoginFailureEvent>(EventCallback)
                                     .WithSignInResult(IdentitySignInResult.Failed)
                                     .Build();

            await loginService.SignInAsync(username, "pass", null);

            eventCount.Should().Be(1);
            Assert.NotNull(raisedEvent);
            raisedEvent.ClientId.Should().BeNull();
            raisedEvent.Message.Should().Be(LoginService.ValidateUserMessage);
            raisedEvent.Username.Should().Be(username);
        }
Example #2
0
        public async Task RaiseAsync(Event evt)
        {
            if (evt.Name.Contains("Login"))
            {
                if (evt.EventType == EventTypes.Success)
                {
                    UserLoginSuccessEvent successEvent = evt as UserLoginSuccessEvent;
                    UserAudit             user         = UserAudit.CreateAuditEvent(successEvent.SubjectId.ToString(), successEvent.Username, successEvent.DisplayName, successEvent.Name, successEvent.Id.ToString(), evt.EventType.ToString(), evt.RemoteIpAddress);
                    await _context.UserAuditEvents.AddAsync(user);

                    await _context.SaveChangesAsync();
                }
                else
                {
                    UserLoginFailureEvent failEvent = evt as UserLoginFailureEvent;
                    UserAudit             user      = UserAudit.CreateAuditEvent(failEvent.Username.ToString(), failEvent.Id.ToString(), failEvent.Name, failEvent.EventType.ToString(), evt.RemoteIpAddress);
                    await _context.UserAuditEvents.AddAsync(user);

                    await _context.SaveChangesAsync();
                }
            }
            else if (evt.Name.Contains("Logout"))
            {
                UserLogoutSuccessEvent failEvent = evt as UserLogoutSuccessEvent;
                UserAudit user = UserAudit.CreateAuditEvent(failEvent.SubjectId.ToString(), failEvent.DisplayName, failEvent.DisplayName, failEvent.Name, failEvent.Id.ToString(), evt.EventType.ToString(), evt.RemoteIpAddress);
                await _context.UserAuditEvents.AddAsync(user);

                await _context.SaveChangesAsync();
            }
        }
Example #3
0
        public void Create_WhenUserLoginFailureEvent_WillReturnUserLoginFailureAdapter()
        {
            // Arrange
            var evt = new UserLoginFailureEvent(string.Empty, string.Empty);

            var sut = new AdapterFactory();

            // Act
            var adapter = sut.Create(evt);

            // Assert
            Assert.IsType <UserLoginFailureEventAdapter>(adapter);
        }
 public UserLoginFailureEventAdapter(UserLoginFailureEvent evt)
 {
     this.evt = evt ?? throw new ArgumentNullException(nameof(evt));
 }