public async Task InitiateAuthAppEnrollment_GivenExecutionFails_ExpectFailedResult() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <InitiateAuthenticatorAppEnrollmentCommand>(), It.IsAny <CancellationToken>())) .ReturnsAsync(() => Result.Fail <InitiateAuthenticatorAppEnrollmentCommandResult, ErrorData>( new ErrorData(ErrorCodes.AuthenticationFailed))); var securitySettings = new Mock <IOptions <SecuritySettings> >(); var urlEncoder = new Mock <UrlEncoder>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); currentAuthenticatedUserProvider.Setup(x => x.CurrentAuthenticatedUser).Returns( Maybe.From( new AuthenticatedUser(TestVariables.UserId, "email-address", "first-name", "last-name") as ISystemUser)); var controller = new AuthAppApiController(mediator.Object, securitySettings.Object, urlEncoder.Object, currentAuthenticatedUserProvider.Object); var result = Assert.IsType <JsonResult>(await controller.InitiateAuthAppEnrollment()); var response = Assert.IsType <InitiateAuthAppEnrollmentResponse>(result.Value); Assert.False(response.IsSuccess); }
public async Task InitiateAuthAppEnrollment_GivenExecutionSuccess_ExpectSuccessfulResult() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <InitiateAuthenticatorAppEnrollmentCommand>(), CancellationToken.None)) .ReturnsAsync(() => Result.Ok <InitiateAuthenticatorAppEnrollmentCommandResult, ErrorData>( new InitiateAuthenticatorAppEnrollmentCommandResult("some-key"))); var securitySettings = new Mock <IOptions <SecuritySettings> >(); securitySettings.Setup(x => x.Value).Returns(new SecuritySettings { SiteName = "site-name", }); var urlEncoder = new Mock <UrlEncoder>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); currentAuthenticatedUserProvider.Setup(x => x.CurrentAuthenticatedUser).Returns( Maybe.From( new AuthenticatedUser(TestVariables.UserId, "email-address", "first-name", "last-name") as ISystemUser)); var controller = new AuthAppApiController(mediator.Object, securitySettings.Object, urlEncoder.Object, currentAuthenticatedUserProvider.Object); var result = Assert.IsType <JsonResult>(await controller.InitiateAuthAppEnrollment()); var response = Assert.IsType <InitiateAuthAppEnrollmentResponse>(result.Value); Assert.True(response.IsSuccess); Assert.Equal("some-key", response.SharedKey); Assert.Equal("otpauth://totp/:?secret=some-key&issuer=&digits=6", response.AuthenticatorUri); Assert.Equal("some -key", response.FormattedSharedKey); }
public async Task EnrollAuthApp_GivenInvalidModelState_ExpectFailedResult() { var mediator = new Mock <IMediator>(); var securitySettings = new Mock <IOptions <SecuritySettings> >(); var urlEncoder = new Mock <UrlEncoder>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); var controller = new AuthAppApiController(mediator.Object, securitySettings.Object, urlEncoder.Object, currentAuthenticatedUserProvider.Object); controller.ModelState.AddModelError("key", "error-message"); var result = Assert.IsType <JsonResult>(await controller.EnrollAuthApp(null)); var response = Assert.IsType <EnrollAuthAppResponse>(result.Value); Assert.False(response.IsSuccess); }
public async Task InitiateAuthAppEnrollment_GivenNoUserIsAuthenticated_ExpectFailedResult() { var mediator = new Mock <IMediator>(); var securitySettings = new Mock <IOptions <SecuritySettings> >(); var urlEncoder = new Mock <UrlEncoder>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); currentAuthenticatedUserProvider.Setup(x => x.CurrentAuthenticatedUser).Returns(Maybe <ISystemUser> .Nothing); var controller = new AuthAppApiController(mediator.Object, securitySettings.Object, urlEncoder.Object, currentAuthenticatedUserProvider.Object); var result = Assert.IsType <JsonResult>(await controller.InitiateAuthAppEnrollment()); var response = Assert.IsType <InitiateAuthAppEnrollmentResponse>(result.Value); Assert.False(response.IsSuccess); }
public async Task EnrollAuthApp_GivenExecutionSucceeds_ExpectSuccessfulResult() { var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <EnrollAuthenticatorAppCommand>(), It.IsAny <CancellationToken>())) .ReturnsAsync(() => ResultWithError.Ok <ErrorData>()); var securitySettings = new Mock <IOptions <SecuritySettings> >(); var urlEncoder = new Mock <UrlEncoder>(); var currentAuthenticatedUserProvider = new Mock <ICurrentAuthenticatedUserProvider>(); var controller = new AuthAppApiController(mediator.Object, securitySettings.Object, urlEncoder.Object, currentAuthenticatedUserProvider.Object); var result = Assert.IsType <JsonResult>(await controller.EnrollAuthApp(new EnrollAuthAppRequest())); var response = Assert.IsType <EnrollAuthAppResponse>(result.Value); Assert.True(response.IsSuccess); }