コード例 #1
0
 public void SetUp()
 {
     _mediator     = Substitute.For <IMediator>();
     _controller   = new CreatePasswordController(_mediator);
     _invitationId = Guid.NewGuid();
     _controller.ModelState.AddModelError("", "");
 }
 public void SetUp()
 {
     Mediator             = Substitute.For <IMediator>();
     ConfigurationService = Substitute.For <IConfigurationService>();
     Controller           = new CreatePasswordController(Mediator);
     SystemTime.UtcNow    = () => new DateTime(2019, 1, 1, 1, 1, 1);
 }
        public void Then_ViewResult_is_returned()
        {
            var mediator = Substitute.For <IMediator>();

            mediator.Send(Arg.Any <CreatePasswordRequest>()).Returns(new CreatePasswordResponse()
            {
                PasswordValid = false
            });
            mediator.Send(Arg.Any <GetInvitationByIdRequest>()).Returns(new Invitation());
            var controller = new CreatePasswordController(mediator);

            var invitationId = Guid.NewGuid();
            var result       = controller.Post(new CreatePasswordViewModel()
            {
                InvitationId = invitationId, Password = "******", ConfirmPassword = "******"
            }).Result;

            result.Should().BeOfType <ViewResult>();
            ((ViewResult)result).ViewName.Should().Be("CreatePassword");
            ((CreatePasswordViewModel)((ViewResult)result).Model).Password.Should().Be("Pa55word");
            ((CreatePasswordViewModel)((ViewResult)result).Model).ConfirmPassword.Should().Be("Pa55word");


            controller.ModelState.Count.Should().Be(1);
            controller.ModelState.ValidationState.Should().Be(ModelValidationState.Invalid);
            controller.ModelState.First().Key.Should().Be("Password");
            controller.ModelState.First().Value.Errors.First().ErrorMessage.Should().Be("Password does not meet minimum complexity requirements");
        }
コード例 #4
0
        public void Then_BadRequest_Is_Returned()
        {
            var mediator = Substitute.For <IMediator>();

            mediator.Send(Arg.Any <GetInvitationByIdRequest>()).Returns(default(Invitation));

            var controller = new CreatePasswordController(mediator);
            var result     = controller.Post(new CreatePasswordViewModel()
            {
                InvitationId = Guid.NewGuid()
            }).Result;

            result.Should().BeOfType <BadRequestObjectResult>();
        }
        public async Task And_unsuccessful_reinvite_Then_RedirectToActionResult()
        {
            var mediator = Substitute.For <IMediator>();

            mediator.Send(Arg.Any <ReinviteRequest>(), CancellationToken.None).Returns(new CreateInvitationResponse()
            {
                Invited = false, Message = "Error message"
            });
            var controller   = new CreatePasswordController(mediator);
            var invitationId = Guid.NewGuid();

            var result = await controller.Reinvite(invitationId);

            result.Should().BeOfType <BadRequestResult>();
        }
        public async Task Then_reinvite_handler_is_called()
        {
            var mediator = Substitute.For <IMediator>();

            mediator.Send(Arg.Any <ReinviteRequest>(), CancellationToken.None).Returns(new CreateInvitationResponse()
            {
                Invited = true, Message = ""
            });

            var controller   = new CreatePasswordController(mediator);
            var invitationId = Guid.NewGuid();

            await controller.Reinvite(invitationId);

            await mediator.Received().Send(Arg.Is <ReinviteRequest>(r => r.InvitationId == invitationId));
        }
コード例 #7
0
        public async Task And_successful_reinvite_Then_RedirectToActionResult()
        {
            var mediator        = Substitute.For <IMediator>();
            var newInvitationId = Guid.NewGuid();

            mediator.Send(Arg.Any <ReinviteRequest>(), CancellationToken.None).Returns(new CreateInvitationResponse()
            {
                Invited = true, Message = "", InvitationId = newInvitationId
            });
            var controller   = new CreatePasswordController(mediator);
            var invitationId = Guid.NewGuid();

            var result = await controller.Reinvite(invitationId);

            result.Should().BeOfType <RedirectToActionResult>();
            ((RedirectToActionResult)result).ActionName.Should().Be("Reinvited");
            ((RedirectToActionResult)result).RouteValues["invitationId"].Should().Be(newInvitationId);
        }
コード例 #8
0
        public void Then_mediator_is_called_with_correct_request()
        {
            var mediator = Substitute.For <IMediator>();

            mediator.Send(Arg.Any <CreatePasswordRequest>()).Returns(new CreatePasswordResponse()
            {
                PasswordValid = true
            });
            mediator.Send(Arg.Any <GetInvitationByIdRequest>()).Returns(new Invitation());
            var controller = new CreatePasswordController(mediator);

            var invitationId = Guid.NewGuid();

            controller.Post(new CreatePasswordViewModel()
            {
                InvitationId = invitationId, Password = "******", ConfirmPassword = "******"
            }).Wait();

            mediator.Received().Send(Arg.Is <CreatePasswordRequest>(r => r.InvitationId == invitationId && r.Password == "Pa55word"));
        }
        public void Then_RedirectToActionResult_is_returned()
        {
            var mediator = Substitute.For <IMediator>();

            mediator.Send(Arg.Any <CreatePasswordRequest>()).Returns(new CreatePasswordResponse()
            {
                PasswordValid = true
            });
            mediator.Send(Arg.Any <GetInvitationByIdRequest>()).Returns(new Invitation());
            var controller = new CreatePasswordController(mediator);

            var invitationId = Guid.NewGuid();
            var result       = controller.Post(new CreatePasswordViewModel()
            {
                InvitationId = invitationId, Password = "******", ConfirmPassword = "******"
            }).Result;

            result.Should().BeOfType <RedirectToActionResult>();
            ((RedirectToActionResult)result).ActionName.Should().Be("Get");
            ((RedirectToActionResult)result).ControllerName.Should().Be("SignUpComplete");
            ((RedirectToActionResult)result).RouteValues["id"].Should().Be(invitationId);
        }
コード例 #10
0
        public async Task And_unsuccessful_reinvite_with_ExistingUser_Then_ViewResult()
        {
            var mediator = Substitute.For <IMediator>();

            mediator.Send(Arg.Any <ReinviteRequest>(), CancellationToken.None).Returns(new CreateInvitationResponse()
            {
                Invited = false, ExistingUserId = Guid.NewGuid().ToString(), Message = "Error message"
            });

            mediator.Send(Arg.Any <GetInvitationByIdRequest>(), CancellationToken.None).Returns(new Invitation()
            {
                ClientId = Guid.NewGuid()
            });

            var controller   = new CreatePasswordController(mediator);
            var invitationId = Guid.NewGuid();

            var result = await controller.Reinvite(invitationId);

            result.Should().BeOfType <ViewResult>();
            ((ViewResult)result).ViewName.Should().Be("AccountExists");
        }