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!\"}"); } }
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\"}"); } }
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\"}"); }
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" })); }
private static StringContent GetHttpJsonContent(DiffDataViewModel content) { return(new StringContent(JsonConvert.SerializeObject(content), Encoding.UTF8, "application/json")); }