コード例 #1
0
        public void ValidateEmail_WithNull_ReturnsFalse()
        {
            //Arrange
            string invalidEmail = null;

            //Act
            var actual = InquiryCriteriaValidation.ValidateEmail(invalidEmail);

            //Assert
            Assert.False(actual);
        }
コード例 #2
0
        public void ValidateEmail_EmailLengthWasExceed_ReturnsFalse()
        {
            //Arrange
            string invalidEmail = "*****@*****.**";

            //Act
            var actual = InquiryCriteriaValidation.ValidateEmail(invalidEmail);

            //Assert
            Assert.False(actual);
        }
コード例 #3
0
        public void ValidateCustomerID_ValidCriteria_ReturnsTrue()
        {
            //Arrange
            string validCustomerId = "123456";

            //Act
            var actual = InquiryCriteriaValidation.ValidateCustomerID(validCustomerId);

            //Assert
            Assert.True(actual);
        }
コード例 #4
0
        public void ValidateCustomerID_WithNull_ReturnsFalse()
        {
            //Arrange
            string invalidCustomerId = null;

            //Act
            var actual = InquiryCriteriaValidation.ValidateCustomerID(invalidCustomerId);

            //Assert
            Assert.False(actual);
        }
コード例 #5
0
        public void ValidateCustomerID_CustomerIdCriteriaLessThanZero_ReturnsFalse()
        {
            //Arrange
            string invalidCustomerId = "-1";

            //Act
            var actual = InquiryCriteriaValidation.ValidateCustomerID(invalidCustomerId);

            //Assert
            Assert.False(actual);
        }
コード例 #6
0
        public void ValidateCustomerID_NoneNumericCriteria_ReturnsFalse()
        {
            //Arrange
            string invalidCustomerId = "ID1234";

            //Act
            var actual = InquiryCriteriaValidation.ValidateCustomerID(invalidCustomerId);

            //Assert
            Assert.False(actual);
        }
コード例 #7
0
        public void ValidateCustomerID_LengthWasExceed_ReturnsFalse()
        {
            //Arrange
            string invalidCustomerId = "12345678901";

            //Act
            var actual = InquiryCriteriaValidation.ValidateCustomerID(invalidCustomerId);

            //Assert
            Assert.False(actual);
        }
コード例 #8
0
        public void ValidateEmail_ValidEmail_ReturnsTrue()
        {
            //Arrange
            string validEmail = "*****@*****.**";

            //Act
            var actual = InquiryCriteriaValidation.ValidateEmail(validEmail);

            //Assert
            Assert.True(actual);
        }
コード例 #9
0
        public ActionResult <Customer> Inquiry(CustomerInquiryRequestMessage criteria)
        {
            try
            {
                if (criteria == null || string.IsNullOrEmpty(criteria.CustomerID) && string.IsNullOrEmpty(criteria.Email))
                {
                    return(BadRequest(new ErrorResponseMessage {
                        Message = "No inquiry criteria"
                    }));
                }

                if (!string.IsNullOrEmpty(criteria.CustomerID) && !string.IsNullOrEmpty(criteria.Email))
                {
                    if (!InquiryCriteriaValidation.ValidateCustomerID(criteria.CustomerID))
                    {
                        return(BadRequest(new ErrorResponseMessage {
                            Message = "Invalid Customer ID"
                        }));
                    }
                    if (!InquiryCriteriaValidation.ValidateEmail(criteria.Email))
                    {
                        return(BadRequest(new ErrorResponseMessage {
                            Message = "Invalid Email"
                        }));
                    }

                    var customer = _customerService.GetCustomerByIdAndEmail(Convert.ToInt32(criteria.CustomerID), criteria.Email);
                    if (customer == null)
                    {
                        return(NotFound(null));
                    }

                    return(Ok(customer));
                }

                if (!string.IsNullOrEmpty(criteria.CustomerID))
                {
                    if (!InquiryCriteriaValidation.ValidateCustomerID(criteria.CustomerID))
                    {
                        return(BadRequest(new ErrorResponseMessage {
                            Message = "Invalid Customer ID"
                        }));
                    }

                    var customer = _customerService.GetCustomerById(Convert.ToInt32(criteria.CustomerID));
                    if (customer == null)
                    {
                        return(NotFound(null));
                    }

                    return(Ok(customer));
                }

                if (!string.IsNullOrEmpty(criteria.Email))
                {
                    if (!InquiryCriteriaValidation.ValidateEmail(criteria.Email))
                    {
                        return(BadRequest(new ErrorResponseMessage {
                            Message = "Invalid Email"
                        }));
                    }

                    var customer = _customerService.GetCustomerByEmail(criteria.Email);
                    if (customer == null)
                    {
                        return(NotFound(null));
                    }

                    return(Ok(customer));
                }

                return(BadRequest(null));
            }
            catch (Exception ex)
            {
                return(StatusCode(500, new ErrorResponseMessage {
                    Message = "An error occured"
                }));
            }
        }