Procházet zdrojové kódy

增加接口测试方法

zhontai před 3 roky
rodič
revize
4decaf65af

+ 39 - 6
Admin.Core.Tests/Controller/Admin/ApiControllerTest.cs

@@ -1,26 +1,59 @@
-using Newtonsoft.Json;
+using Admin.Core.Common.Input;
+using Admin.Core.Model.Admin;
+using Newtonsoft.Json;
 using Newtonsoft.Json.Linq;
 using System.Net;
+using System.Net.Http;
+using System.Threading.Tasks;
 using Xunit;
 
 namespace Admin.Core.Tests.Controller.Admin
 {
     public class ApiControllerTest : BaseControllerTest
     {
-        public ApiControllerTest()
+        public ApiControllerTest() : base()
         {
         }
 
-        [Fact]
-        public async void GetList()
+        private async Task<JObject> GetResult(string apiPath, HttpContent httpContent = null)
         {
             await Login();
 
-            var res = await Client.GetAsync("/api/admin/api/getlist");
+            var res = httpContent != null ? await Client.PostAsync(apiPath, httpContent) : await Client.GetAsync(apiPath);
             Assert.Equal(HttpStatusCode.OK, res.StatusCode);
 
             var content = await res.Content.ReadAsStringAsync();
-            var jObject = JsonConvert.DeserializeObject<JObject>(content);
+            return JsonConvert.DeserializeObject<JObject>(content);
+        }
+
+        [Fact]
+        public async Task Get()
+        {
+            var jObject = await GetResult("/api/admin/api/get?id=161227167658053");
+            Assert.Equal(1, jObject["code"]);
+        }
+
+        [Fact]
+        public async Task GetList()
+        {
+            var jObject = await GetResult("/api/admin/api/getlist?key=接口管理");
+            Assert.Equal(1, jObject["code"]);
+        }
+
+        [Fact]
+        public async Task GetPage()
+        {
+            var input = new PageInput<ApiEntity> 
+            { 
+                CurrentPage = 1, 
+                PageSize = 20, 
+                Filter = new ApiEntity 
+                { 
+                    Label = "接口管理" 
+                }
+            };
+            HttpContent httpContent = new StringContent(JsonConvert.SerializeObject(input));
+            var jObject = await GetResult($"/api/admin/api/getpage", httpContent);
             Assert.Equal(1, jObject["code"]);
         }
     }

+ 18 - 22
Admin.Core.Tests/Controller/BaseControllerTest.cs

@@ -21,7 +21,6 @@ namespace Admin.Core.Tests.Controller
         private readonly ICache _cache;
         private readonly IAuthService _authService;
         private readonly AppConfig _appConfig;
-        private static JToken _token = null;
 
         protected BaseControllerTest()
         {
@@ -40,31 +39,28 @@ namespace Admin.Core.Tests.Controller
 
         public async Task Login(AuthLoginInput input = null)
         {
-            if(_token == null)
+            if (input == null && _appConfig.VarifyCode.Enable)
             {
-                if (input == null && _appConfig.VarifyCode.Enable)
+                var res = await _authService.GetVerifyCodeAsync("") as IResponseOutput<AuthGetVerifyCodeOutput>;
+                var verifyCodeKey = string.Format(CacheKey.VerifyCodeKey, res.Data.Key);
+                var verifyCode = await _cache.GetAsync(verifyCodeKey);
+                input = new AuthLoginInput()
                 {
-                    var res = await _authService.GetVerifyCodeAsync("") as IResponseOutput<AuthGetVerifyCodeOutput>;
-                    var verifyCodeKey = string.Format(CacheKey.VerifyCodeKey, res.Data.Key);
-                    var verifyCode = await _cache.GetAsync(verifyCodeKey);
-                    input = new AuthLoginInput()
-                    {
-                        UserName = "admin",
-                        Password = "111111",
-                        VerifyCodeKey = res.Data.Key,
-                        VerifyCode = verifyCode
-                    };
-                }
+                    UserName = "admin",
+                    Password = "111111",
+                    VerifyCodeKey = res.Data.Key,
+                    VerifyCode = verifyCode
+                };
+            }
 
-                //Client.DefaultRequestHeaders.Connection.Add("keep-alive");
-                Client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36");
+            //Client.DefaultRequestHeaders.Connection.Add("keep-alive");
+            Client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36");
 
-                var result = await Client.PostAsync($"/api/admin/auth/login", GetHttpContent(input));
-                var content = await result.Content.ReadAsStringAsync();
-                var jObject = JsonConvert.DeserializeObject<JObject>(content);
-                _token = jObject["data"]["token"];
-            }
-            Client.DefaultRequestHeaders.Add("Authorization", $"Bearer {_token}");
+            var result = await Client.PostAsync($"/api/admin/auth/login", GetHttpContent(input));
+            var content = await result.Content.ReadAsStringAsync();
+            var jObject = JsonConvert.DeserializeObject<JObject>(content);
+            var token = jObject["data"]["token"];
+            Client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token}");
         }
 
         public string ToParams(object source)

+ 2 - 2
Admin.Core.Tests/Repository/Admin/RepositoryBaseTest.cs

@@ -6,11 +6,11 @@ namespace Admin.Core.Tests.Service.Repository.Admin
 {
     public class RepositoryBaseTest : BaseTest
     {
-        private readonly IRepositoryBase<UserEntity, long> _repositoryBase;
+        private readonly IRepositoryBase<UserEntity> _repositoryBase;
 
         public RepositoryBaseTest()
         {
-            _repositoryBase = GetService<IRepositoryBase<UserEntity, long>>();
+            _repositoryBase = GetService<IRepositoryBase<UserEntity>>();
         }
 
         [Fact]