Ejemplo n.º 1
0
        public async void PostTest()
        {
            var loginContract = new LoginContract {
                Login = "******", Password = "******"
            };
            var loginHashContract = new LoginHashContract {
                HashValue = "hashhashhashhash"
            };

            var mockFactory = new Mock <IHttpClientFactory>();
            var handlerMock = new Mock <HttpMessageHandler>();
            var response    = new HttpResponseMessage
            {
                StatusCode = HttpStatusCode.OK,
                Content    = new StringContent(JsonConvert.SerializeObject(loginHashContract), Encoding.UTF8, "application/json"),
            };

            handlerMock
            .Protected()
            .Setup <Task <HttpResponseMessage> >(
                "SendAsync",
                ItExpr.IsAny <HttpRequestMessage>(),
                ItExpr.IsAny <CancellationToken>())
            .ReturnsAsync(response);


            var httpClient = new HttpClient(handlerMock.Object);

            mockFactory.Setup(_ => _.CreateClient(It.IsAny <string>())).Returns(httpClient);


            Settings app = new Settings()
            {
                ApiUrls = new ApiUrls()
                {
                    CalculateMD5 = "http://test"
                }
            };
            var mockOptions = new Mock <IOptions <Settings> >();

            // We need to set the Value of IOptions to be the SampleOptions Class
            mockOptions.Setup(ap => ap.Value).Returns(app);

            var hashController = new HashController(mockFactory.Object, mockOptions.Object);

            var result = await hashController.PostAsync(loginContract);

            var actual   = JsonConvert.SerializeObject(((OkObjectResult)result).Value);
            var expected = JsonConvert.SerializeObject(loginHashContract);


            Assert.Equal(expected, actual);
        }
Ejemplo n.º 2
0
        public static async Task <IActionResult> Run(
            [HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequest req)
        {
            //log.LogInformation("Caclulating MD5");

            string loginContractJson = await new StreamReader(req.Body).ReadToEndAsync();
            //LoginContract loginContract = JsonConvert.DeserializeObject<LoginContract>(loginContractJson);

            var hash = GetMD5Hash(loginContractJson);

            LoginHashContract loginHashContract = new LoginHashContract {
                HashValue = hash
            };

            return(new OkObjectResult(loginHashContract));
        }