public async Task Action_GetCustomerByValidEmail_ReturnsNotFound()
        {
            //Arrange
            var customerEmail = _email;

            _mockCustomerService.Setup(serv => serv.IsEmailValid(customerEmail))
            .Returns(PropertyIsValid);
            _mockCustomerService.Setup(serv => serv.GetDataByEmailAsync(customerEmail))
            .ReturnsAsync((CustomerViewModel)null);
            var controller = new CustomersController(_mockCustomerService.Object);

            //Act
            var result = await controller.GetByEmail(customerEmail);

            //Assert
            Assert.IsType <NotFoundResult>(result);
        }
        public async Task Action_GetCustomerByInValidEmail_ReturnsBadRequestAndMessage()
        {
            //Arrange
            var customerEmail = _email;
            var messageValue  = "Invalid Email";

            _mockCustomerService.Setup(serv => serv.IsEmailValid(customerEmail))
            .Returns(PropertyIsInValid);
            var controller = new CustomersController(_mockCustomerService.Object);

            //Act
            var result = await controller.GetByEmail(customerEmail);

            var value = (result as BadRequestObjectResult).Value;

            //Assert
            Assert.IsType <BadRequestObjectResult>(result);
            Assert.Equal(value, messageValue);
        }
        public async Task Action_GetCustomerByValidEmail_ReturnsJsonResult_Code200AndData()
        {
            //Arrange
            var customerEmail = _email;
            int code200       = StatusCodes.Status200OK;

            _mockCustomerService.Setup(serv => serv.GetDataByEmailAsync(customerEmail))
            .ReturnsAsync(GetCustomer);
            _mockCustomerService.Setup(serv => serv.IsEmailValid(customerEmail))
            .Returns(PropertyIsValid);
            var controller = new CustomersController(_mockCustomerService.Object);

            //Act
            var result = await controller.GetByEmail(customerEmail);

            var code = (result as JsonResult).Value.GetType().GetProperty("StatusCode").GetValue((result as JsonResult).Value);

            //Assert
            Assert.IsType <JsonResult>(result);
            Assert.Equal(code200, code);
        }