Given_a_login_request_is_missing_UserCredentials_fields_then_when_validated_returns_false_and_correct_error(string userEmail, string userPassword)
        {
            //Arrange
            var payload = new UserCredentials()
            {
                Email    = userEmail,
                Password = userPassword
            };

            //Act
            ErrorMessage error;
            var          result = _sut.IsValid(payload, out error);

            //Assert
            Assert.IsFalse(result);
            Assert.AreEqual(error.Code, ErrorCode.MissingField);

            if (string.IsNullOrEmpty(userEmail))
            {
                StringAssert.Contains(nameof(payload.Email), error.Message);
            }
            if (string.IsNullOrEmpty(userPassword))
            {
                StringAssert.Contains(nameof(payload.Password), error.Message);
            }
        }