From dc1ab11cea249f4ca967f86b115147a63f7c93a5 Mon Sep 17 00:00:00 2001 From: 杨宇千 Date: Mon, 5 Aug 2019 18:58:56 +0800 Subject: 3 things. 1. Exchange Models and Entities namespace. 2. Fix the bug that input with missing field leads to 500. 3. Write unit tests. --- .../Authentication/AuthenticationExtensions.cs | 4 ++-- Timeline.Tests/Helpers/InvalidModelTestHelpers.cs | 19 +++++++++++++++++++ Timeline.Tests/Helpers/MyWebApplicationFactory.cs | 2 +- Timeline.Tests/Helpers/ResponseExtensions.cs | 2 +- Timeline.Tests/Helpers/UserInfoComparers.cs | 2 +- 5 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 Timeline.Tests/Helpers/InvalidModelTestHelpers.cs (limited to 'Timeline.Tests/Helpers') diff --git a/Timeline.Tests/Helpers/Authentication/AuthenticationExtensions.cs b/Timeline.Tests/Helpers/Authentication/AuthenticationExtensions.cs index 27362ac3..92617588 100644 --- a/Timeline.Tests/Helpers/Authentication/AuthenticationExtensions.cs +++ b/Timeline.Tests/Helpers/Authentication/AuthenticationExtensions.cs @@ -2,7 +2,7 @@ using Newtonsoft.Json; using System.Net.Http; using System.Threading.Tasks; -using Timeline.Entities.Http; +using Timeline.Models.Http; namespace Timeline.Tests.Helpers.Authentication { @@ -10,7 +10,7 @@ namespace Timeline.Tests.Helpers.Authentication { private const string CreateTokenUrl = "/token/create"; - public static async Task CreateUserTokenAsync(this HttpClient client, string username, string password, double? expireOffset = null) + public static async Task CreateUserTokenAsync(this HttpClient client, string username, string password, int? expireOffset = null) { var response = await client.PostAsJsonAsync(CreateTokenUrl, new CreateTokenRequest { Username = username, Password = password, ExpireOffset = expireOffset }); var result = JsonConvert.DeserializeObject(await response.Content.ReadAsStringAsync()); diff --git a/Timeline.Tests/Helpers/InvalidModelTestHelpers.cs b/Timeline.Tests/Helpers/InvalidModelTestHelpers.cs new file mode 100644 index 00000000..d35982d4 --- /dev/null +++ b/Timeline.Tests/Helpers/InvalidModelTestHelpers.cs @@ -0,0 +1,19 @@ +using System.Net; +using System.Net.Http; +using System.Threading.Tasks; +using Timeline.Models.Http; +using Xunit; + +namespace Timeline.Tests.Helpers +{ + public static class InvalidModelTestHelpers + { + public static async Task TestPostInvalidModel(HttpClient client, string url, T body) + { + var response = await client.PostAsJsonAsync(url, body); + Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); + var responseBody = await response.ReadBodyAsJson(); + Assert.Equal(CommonResponse.ErrorCodes.InvalidModel, responseBody.Code); + } + } +} diff --git a/Timeline.Tests/Helpers/MyWebApplicationFactory.cs b/Timeline.Tests/Helpers/MyWebApplicationFactory.cs index 903cd670..ef207fd2 100644 --- a/Timeline.Tests/Helpers/MyWebApplicationFactory.cs +++ b/Timeline.Tests/Helpers/MyWebApplicationFactory.cs @@ -5,7 +5,7 @@ using Microsoft.Data.Sqlite; using Microsoft.EntityFrameworkCore; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; -using Timeline.Models; +using Timeline.Entities; using Timeline.Services; using Xunit.Abstractions; diff --git a/Timeline.Tests/Helpers/ResponseExtensions.cs b/Timeline.Tests/Helpers/ResponseExtensions.cs index 86ac1c88..9ca583fc 100644 --- a/Timeline.Tests/Helpers/ResponseExtensions.cs +++ b/Timeline.Tests/Helpers/ResponseExtensions.cs @@ -1,7 +1,7 @@ using Newtonsoft.Json; using System.Net.Http; using System.Threading.Tasks; - + namespace Timeline.Tests.Helpers { public static class ResponseExtensions diff --git a/Timeline.Tests/Helpers/UserInfoComparers.cs b/Timeline.Tests/Helpers/UserInfoComparers.cs index fcf37e5c..3068b6dd 100644 --- a/Timeline.Tests/Helpers/UserInfoComparers.cs +++ b/Timeline.Tests/Helpers/UserInfoComparers.cs @@ -1,5 +1,5 @@ using System.Collections.Generic; -using Timeline.Entities; +using Timeline.Models; namespace Timeline.Tests.Helpers { -- cgit v1.2.3