public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = null)] HttpRequest req,
            ILogger log)
        {
            string requestBody = await new StreamReader(req.Body).ReadToEndAsync();

            var requestModel = JsonConvert.DeserializeObject <HashRequestModel>(requestBody);

            HashResponseModel response = new HashResponseModel
            {
                hash_value = HashUtility.GetMD5Hash($"{requestModel.Login}{requestModel.Password}")
            };

            return(new OkObjectResult(response));
        }
        public async Task ShouldReturnHashedValue()
        {
            //arrange
            HashRequestModel model = new HashRequestModel {
                Login = "******", Password = "******"
            };
            HashResponseModel responseModel = new HashResponseModel {
                hash_value = "otee"
            };

            var handlerMock  = new Mock <HttpMessageHandler>();
            var httpResponse = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(responseModel)),
            };

            handlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(httpResponse);
            var httpClient = new HttpClient(handlerMock.Object);

            httpClient.BaseAddress = new Uri("http://localhost:7071");

            FunctionService service = new FunctionService(httpClient);

            //act
            var serviceResponse = await service.Hash(model);

            //assert
            Assert.NotNull(service);

            Assert.NotNull(serviceResponse.hash_value);
        }