|
|
|
|
using System;
|
|
|
|
|
using System.Collections.Generic;
|
|
|
|
|
using System.Net.Http;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
using Microsoft.AspNetCore.TestHost;
|
|
|
|
|
using Microsoft.AspNetCore.Http;
|
|
|
|
|
using Microsoft.AspNetCore.Hosting;
|
|
|
|
|
|
|
|
|
|
using Newtonsoft.Json;
|
|
|
|
|
using Xunit;
|
|
|
|
|
using Xunit.Abstractions;
|
|
|
|
|
using Xunit.Extensions;
|
|
|
|
|
using Moq;
|
|
|
|
|
|
|
|
|
|
using WebApiStudy.Model;
|
|
|
|
|
using WebApiStudy.WebApp;
|
|
|
|
|
|
|
|
|
|
namespace WebApiStudy.IntegrationTest
|
|
|
|
|
{
|
|
|
|
|
[Collection("GlobalTestServer")]
|
|
|
|
|
public class UserControllerTest
|
|
|
|
|
{
|
|
|
|
|
private TestServer _server;
|
|
|
|
|
private readonly HttpClient _client;
|
|
|
|
|
|
|
|
|
|
public UserControllerTest(TestServerFixture testServer)
|
|
|
|
|
{
|
|
|
|
|
_server = testServer.TestServer;
|
|
|
|
|
_client = _server.CreateClient();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task GetUsers_Test()
|
|
|
|
|
{
|
|
|
|
|
var response = await _client.GetAsync("/api/user/GetAllUser");
|
|
|
|
|
response.EnsureSuccessStatusCode();
|
|
|
|
|
|
|
|
|
|
var responseString = await response.Content.ReadAsStringAsync();
|
|
|
|
|
IList<User> list = JsonConvert.DeserializeObject<IList<User>>(responseString);
|
|
|
|
|
|
|
|
|
|
Assert.Equal(5, list.Count);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
[Fact]
|
|
|
|
|
public async Task AddUser_Test()
|
|
|
|
|
{
|
|
|
|
|
Uri uri = new Uri("http://localhost:5000/api/user/AddUser");
|
|
|
|
|
HttpContent httpContent = new StringContent("{\"id\": 55,\"name\": \"张三\",\"age\": 23,\"gender\": 1}", System.Text.Encoding.UTF8, "application/json");
|
|
|
|
|
|
|
|
|
|
//HttpRequestMessage requestMessage = new HttpRequestMessage();
|
|
|
|
|
//requestMessage.RequestUri =uri ;
|
|
|
|
|
//requestMessage.Method = HttpMethod.Post;
|
|
|
|
|
//requestMessage.Content =httpContent;
|
|
|
|
|
|
|
|
|
|
var response = await _client.PostAsync(uri, httpContent);
|
|
|
|
|
response.EnsureSuccessStatusCode();
|
|
|
|
|
|
|
|
|
|
var responseString = await response.Content.ReadAsStringAsync();
|
|
|
|
|
(bool result, User user) = JsonConvert.DeserializeObject<ValueTuple<bool,User>>(responseString);
|
|
|
|
|
|
|
|
|
|
Assert.True(result);
|
|
|
|
|
Assert.Equal(55, user.Id);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|