public void GivenValidData_WhenValidateConsultantLogin_ThenReturnNoErrors()
        {
            var command = LoginCommandFactory.ValidLoginConsultantCommand();

            var result = _validator.TestValidate(command);

            result.IsValid.Should().BeTrue();
            result.ShouldNotHaveAnyValidationErrors();
        }
        public void GivenNoDigitPassword_WhenValidateLogin_ThenReturnErrors()
        {
            var command = LoginCommandFactory.LoginCommandWithNoDigitPassword();

            var result = _validator.TestValidate(command);

            result.IsValid.Should().BeFalse();
            result.ShouldHaveValidationErrorFor(a => a.Password).WithErrorMessage(ValidationErrors.NoDigitPassword);
            result.ShouldNotHaveValidationErrorFor(a => a.Email);
        }
        public void GivenUnregisteredAccount_WhenValidateLogin_ThenReturnErrors()
        {
            var command = LoginCommandFactory.LoginCommandWithInexistingEmail();

            var result = _validator.TestValidate(command);

            result.IsValid.Should().BeFalse();
            result.ShouldHaveValidationErrorFor(a => a.Email).WithErrorMessage(ValidationErrors.InexistentLoginEmail);
            result.ShouldNotHaveValidationErrorFor(a=>a.Password);
        }
        public async Task GivenAccountsController_WhenLoginIsCalled_ThenReturnAccount()
        {
            var command = LoginCommandFactory.ValidLoginUserCommand();

            var result = await _controller.Login(command);

            var okResult = result as OkObjectResult;

            okResult.Should().NotBeNull();
            okResult.StatusCode.Should().Be(200);
            A.CallTo(() => _mediator.Send(command, default)).MustHaveHappenedOnceExactly();
        }