using Bootstrap.DataAccess; using Longbow.Web.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using Xunit; namespace Bootstrap.Admin.Api.SqlServer { public class UsersTest : ControllerTest { public UsersTest(BAWebHost factory) : base(factory, "api/Users") { } [Fact] public async void Option_Ok() { var req = new HttpRequestMessage(HttpMethod.Options, ""); var resp = await Client.SendAsync(req); Assert.Equal(HttpStatusCode.NoContent, resp.StatusCode); } [Fact] public async void Get_Ok() { // 菜单 系统菜单 系统使用条件 var query = "?sort=DisplayName&order=asc&offset=0&limit=20&name=Admin&displayName=Administrator&_=1547628247338"; var qd = await Client.GetAsJsonAsync>(query); Assert.Single(qd.rows); query = "?sort=UserName&order=asc&offset=0&limit=20&name=Admin&displayName=Administrator&_=1547628247338"; qd = await Client.GetAsJsonAsync>(query); Assert.Single(qd.rows); query = "?sort=RegisterTime&order=asc&offset=0&limit=20&name=Admin&displayName=Administrator&_=1547628247338"; qd = await Client.GetAsJsonAsync>(query); Assert.Single(qd.rows); query = "?sort=ApprovedTime&order=asc&offset=0&limit=20&name=Admin&displayName=Administrator&_=1547628247338"; qd = await Client.GetAsJsonAsync>(query); Assert.Single(qd.rows); query = "?sort=ApprovedBy&order=asc&offset=0&limit=20&name=Admin&displayName=Administrator&_=1547628247338"; qd = await Client.GetAsJsonAsync>(query); Assert.Single(qd.rows); } [Fact] public async void PostAndDelete_Ok() { UserHelper.Delete(UserHelper.Retrieves().Where(usr => usr.UserName == "UnitTest_Delete").Select(usr => usr.Id)); var nusr = new User { UserName = "UnitTest_Delete", Password = "1", DisplayName = "DisplayName", ApprovedBy = "System", ApprovedTime = DateTime.Now, Description = "Desc", Icon = "default.jpg" }; var resp = await Client.PostAsJsonAsync("", nusr); Assert.True(resp); nusr.Id = UserHelper.Retrieves().First(u => u.UserName == nusr.UserName).Id; resp = await Client.PostAsJsonAsync(nusr); Assert.True(resp); var ids = UserHelper.Retrieves().Where(d => d.UserName == nusr.UserName).Select(d => d.Id); Assert.True(await Client.DeleteAsJsonAsync, bool>(ids)); } [Fact] public async void PostById_Ok() { var rid = RoleHelper.Retrieves().Where(r => r.RoleName == "Administrators").First().Id; var ret = await Client.PostAsJsonAsync>($"{rid}?type=role", string.Empty); Assert.NotNull(ret); var gid = GroupHelper.Retrieves().Where(r => r.GroupName == "Admin").First().Id; ret = await Client.PostAsJsonAsync>($"{gid}?type=group", string.Empty); Assert.NotNull(ret); ret = await Client.PostAsJsonAsync>("UnitTest?type=reset", string.Empty); Assert.NotNull(ret); } [Fact] public async void PutById_Ok() { var ids = UserHelper.Retrieves().Where(u => u.UserName == "Admin").Select(u => u.Id); var gid = GroupHelper.Retrieves().Where(r => r.GroupName == "Admin").First().Id; var ret = await Client.PutAsJsonAsync, bool>($"{gid}?type=group", ids); Assert.True(ret); var rid = RoleHelper.Retrieves().Where(r => r.RoleName == "Administrators").First().Id; ret = await Client.PutAsJsonAsync, bool>($"{rid}?type=role", ids); Assert.True(ret); } } }