|
5 | 5 | using AngularWebpackVisualStudio;
|
6 | 6 | using AngularWebpackVisualStudio.Models;
|
7 | 7 | using Microsoft.AspNetCore.Hosting;
|
| 8 | +using Microsoft.AspNetCore.Mvc.Testing; |
8 | 9 | using Microsoft.AspNetCore.TestHost;
|
| 10 | +using Microsoft.Extensions.Hosting; |
9 | 11 | using Newtonsoft.Json;
|
10 | 12 | using Xunit;
|
11 | 13 |
|
12 | 14 | namespace AngularWebpackVisualStudio_Tests
|
13 | 15 | {
|
14 |
| - public class ThingsController_Tests |
15 |
| - { |
16 |
| - private readonly HttpClient _client; |
17 |
| - public ThingsController_Tests() |
18 |
| - { |
19 |
| - var hostBuilder = new WebHostBuilder(); |
20 |
| - |
21 |
| - // Arrange |
22 |
| - var server = new TestServer(hostBuilder.UseStartup<Startup>()); |
23 |
| - _client = server.CreateClient(); |
| 16 | + public class ThingsController_Tests : IClassFixture<WebApplicationFactory<AngularWebpackVisualStudio.Startup>> |
| 17 | + { |
| 18 | + private readonly WebApplicationFactory<AngularWebpackVisualStudio.Startup> _factory; |
| 19 | + |
| 20 | + public ThingsController_Tests(WebApplicationFactory<AngularWebpackVisualStudio.Startup> factory) |
| 21 | + { |
| 22 | + _factory = factory; |
24 | 23 | }
|
25 | 24 |
|
| 25 | + //public ThingsController_Tests() |
| 26 | + //{ |
| 27 | + // var hostBuilder = new WebHostBuilder(); |
| 28 | + |
| 29 | + // // Arrange |
| 30 | + // var server = new TestServer(hostBuilder.UseStartup<Startup>()); |
| 31 | + // _client = server.CreateClient(); |
| 32 | + //} |
| 33 | + |
26 | 34 | [Fact]
|
27 | 35 | public async Task Should_Add_One_Thing_Then_Return_The_Result()
|
28 |
| - { |
29 |
| - var values = new Dictionary<string, string> |
30 |
| - { |
31 |
| - {"Id", "1"}, |
32 |
| - { "Name", "NetCore"} |
| 36 | + { |
| 37 | + // Arrange |
| 38 | + var client = _factory.CreateClient(); |
| 39 | + |
| 40 | + Thing thing = new Thing |
| 41 | + { |
| 42 | + Id = 1, |
| 43 | + Name = "thingname" |
33 | 44 | };
|
34 | 45 |
|
35 |
| - var jsonString = JsonConvert.SerializeObject(values); |
| 46 | + var jsonString = JsonConvert.SerializeObject(thing); |
36 | 47 | var content = new StringContent(jsonString, Encoding.UTF8, "application/json");
|
37 |
| - var response = await _client.PostAsync("/api/things", content); |
| 48 | + var response = await client.PostAsync("/api/things", content); |
38 | 49 |
|
39 | 50 | response.EnsureSuccessStatusCode();
|
40 | 51 |
|
41 |
| - var responseGet = await _client.GetAsync("/api/things"); |
| 52 | + var responseGet = await client.GetAsync("/api/things"); |
42 | 53 | responseGet.EnsureSuccessStatusCode();
|
43 | 54 | var resultsInString = await responseGet.Content.ReadAsStringAsync();
|
44 | 55 | var restulsInThingsArray = JsonConvert.DeserializeObject<Thing[]>(resultsInString);
|
|
0 commit comments