Exemple #1
0
        public async Task DiffBetweenTwoEqualDataTest()
        {
            const string leftRoute  = "/v1/diff/3/left";
            const string rightRoute = "/v1/diff/3/right";
            const string route      = "/v1/diff/3";

            var model = new DiffDataViewModel
            {
                Data = GetBase64Encoded("{ \"message\": \"CONTENT FOR TEST\"")
            };

            using (var server = new TestServer(new WebHostBuilder().UseStartup <Startup>()))
                using (var client = server.CreateClient())
                {
                    var leftResponse = await client.PostAsync(leftRoute, GetHttpJsonContent(model));

                    leftResponse.EnsureSuccessStatusCode();

                    var rightResponse = await client.PostAsync(rightRoute, GetHttpJsonContent(model));

                    rightResponse.EnsureSuccessStatusCode();

                    var response = await client.GetAsync(route);

                    response.EnsureSuccessStatusCode();

                    response.StatusCode.Should().Be(HttpStatusCode.OK);
                    response.Content.ReadAsStringAsync().Result.Should().Be("{\"areEqual\":true,\"message\":\"They are equal!\"}");
                }
        }
Exemple #2
0
        public async Task DiffBetweenTwoDifferentDataSizeTest()
        {
            const string leftRoute  = "/v1/diff/3/left";
            const string rightRoute = "/v1/diff/3/right";
            const string route      = "/v1/diff/3";

            var leftModel = new DiffDataViewModel
            {
                Data = GetBase64Encoded("{ \"message\": \"1+2+3+4\"")
            };

            var rightModel = new DiffDataViewModel
            {
                Data = GetBase64Encoded("{ \"message\": \"1+2+3\"")
            };

            using (var server = new TestServer(new WebHostBuilder().UseStartup <Startup>()))
                using (var client = server.CreateClient())
                {
                    var leftResponse = await client.PostAsync(leftRoute, GetHttpJsonContent(leftModel));

                    leftResponse.EnsureSuccessStatusCode();

                    var rightResponse = await client.PostAsync(rightRoute, GetHttpJsonContent(rightModel));

                    rightResponse.EnsureSuccessStatusCode();

                    var response = await client.GetAsync(route);

                    response.EnsureSuccessStatusCode();

                    response.StatusCode.Should().Be(HttpStatusCode.OK);
                    response.Content.ReadAsStringAsync().Result.Should().Be("{\"areEqual\":false,\"message\":\"Size difference! Left: 22; Right: 20\"}");
                }
        }
Exemple #3
0
        public async Task PostRightTest()
        {
            const string route = "/v1/diff/2/right";

            var model = new DiffDataViewModel
            {
                Data = GetBase64Encoded("{ \"message\": \"CONTENT FOR TEST\"")
            };

            var response = await ServerTestHelper.PostAsync(route, GetHttpJsonContent(model));

            response.EnsureSuccessStatusCode();
            response.StatusCode.Should().Be(HttpStatusCode.OK);
            response.Content.ReadAsStringAsync().Result.Should().Be("{\"diffId\":2,\"side\":\"Right\"}");
        }
Exemple #4
0
        public async Task <IActionResult> Post(int id, [FromBody] DiffDataViewModel content)
        {
            if (content == null)
            {
                return(BadRequest(new { Error = "Content should not be null." }));
            }

            var response = await _mediator.Send(new AddDataRequest
            {
                DiffId = id,
                Side   = DataSide.Left,
                Data   = Convert.FromBase64String(content.Data)
            });

            if (!response.Success)
            {
                return(BadRequest(new { Error = response.ErrorMessage }));
            }

            return(Ok(new { DiffId = id, Side = "Left" }));
        }
Exemple #5
0
 private static StringContent GetHttpJsonContent(DiffDataViewModel content)
 {
     return(new StringContent(JsonConvert.SerializeObject(content), Encoding.UTF8, "application/json"));
 }