1
1
// Copyright (c) .NET Foundation. All rights reserved.
2
2
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
3
3
4
+ using System . Collections . Generic ;
4
5
using System . Net ;
5
6
using System . Net . Http ;
6
7
using System . Threading . Tasks ;
8
+ using Microsoft . AspNetCore . Hosting ;
9
+ using Microsoft . AspNetCore . Testing ;
10
+ using Microsoft . Extensions . Configuration ;
11
+ using Microsoft . Extensions . Hosting ;
7
12
using Xunit ;
8
13
9
14
namespace Microsoft . AspNetCore . Mvc . FunctionalTests
10
15
{
11
16
public class SimpleWithWebApplicationBuilderTests : IClassFixture < MvcTestFixture < SimpleWebSiteWithWebApplicationBuilder . FakeStartup > >
12
17
{
18
+ private readonly MvcTestFixture < SimpleWebSiteWithWebApplicationBuilder . FakeStartup > _fixture ;
19
+
13
20
public SimpleWithWebApplicationBuilderTests ( MvcTestFixture < SimpleWebSiteWithWebApplicationBuilder . FakeStartup > fixture )
14
21
{
15
- Client = fixture . CreateDefaultClient ( ) ;
22
+ _fixture = fixture ;
16
23
}
17
24
18
- public HttpClient Client { get ; }
19
-
20
25
[ Fact ]
21
26
public async Task HelloWorld ( )
22
27
{
23
28
// Arrange
24
29
var expected = "Hello World" ;
30
+ using var client = _fixture . CreateDefaultClient ( ) ;
25
31
26
32
// Act
27
- var content = await Client . GetStringAsync ( "http://localhost/" ) ;
33
+ var content = await client . GetStringAsync ( "http://localhost/" ) ;
28
34
29
35
// Assert
30
36
Assert . Equal ( expected , content ) ;
@@ -35,9 +41,10 @@ public async Task JsonResult_Works()
35
41
{
36
42
// Arrange
37
43
var expected = "{\" name\" :\" John\" ,\" age\" :42}" ;
44
+ using var client = _fixture . CreateDefaultClient ( ) ;
38
45
39
46
// Act
40
- var response = await Client . GetAsync ( "/json" ) ;
47
+ var response = await client . GetAsync ( "/json" ) ;
41
48
42
49
// Assert
43
50
await response . AssertStatusCodeAsync ( HttpStatusCode . OK ) ;
@@ -50,9 +57,10 @@ public async Task OkObjectResult_Works()
50
57
{
51
58
// Arrange
52
59
var expected = "{\" name\" :\" John\" ,\" age\" :42}" ;
60
+ using var client = _fixture . CreateDefaultClient ( ) ;
53
61
54
62
// Act
55
- var response = await Client . GetAsync ( "/ok-object" ) ;
63
+ var response = await client . GetAsync ( "/ok-object" ) ;
56
64
57
65
// Assert
58
66
await response . AssertStatusCodeAsync ( HttpStatusCode . OK ) ;
@@ -65,9 +73,10 @@ public async Task AcceptedObjectResult_Works()
65
73
{
66
74
// Arrange
67
75
var expected = "{\" name\" :\" John\" ,\" age\" :42}" ;
76
+ using var client = _fixture . CreateDefaultClient ( ) ;
68
77
69
78
// Act
70
- var response = await Client . GetAsync ( "/accepted-object" ) ;
79
+ var response = await client . GetAsync ( "/accepted-object" ) ;
71
80
72
81
// Assert
73
82
await response . AssertStatusCodeAsync ( HttpStatusCode . Accepted ) ;
@@ -79,8 +88,11 @@ public async Task AcceptedObjectResult_Works()
79
88
[ Fact ]
80
89
public async Task ActionReturningMoreThanOneResult_NotFound ( )
81
90
{
91
+ // Arrange
92
+ using var client = _fixture . CreateDefaultClient ( ) ;
93
+
82
94
// Act
83
- var response = await Client . GetAsync ( "/many-results?id=-1" ) ;
95
+ var response = await client . GetAsync ( "/many-results?id=-1" ) ;
84
96
85
97
// Assert
86
98
await response . AssertStatusCodeAsync ( HttpStatusCode . NotFound ) ;
@@ -89,12 +101,77 @@ public async Task ActionReturningMoreThanOneResult_NotFound()
89
101
[ Fact ]
90
102
public async Task ActionReturningMoreThanOneResult_Found ( )
91
103
{
104
+ // Arrange
105
+ using var client = _fixture . CreateDefaultClient ( ) ;
106
+
92
107
// Act
93
- var response = await Client . GetAsync ( "/many-results?id=7" ) ;
108
+ var response = await client . GetAsync ( "/many-results?id=7" ) ;
94
109
95
110
// Assert
96
111
await response . AssertStatusCodeAsync ( HttpStatusCode . MovedPermanently ) ;
97
112
Assert . Equal ( "/json" , response . Headers . Location . ToString ( ) ) ;
98
113
}
114
+
115
+ [ Fact ]
116
+ [ QuarantinedTest ( "https://github.com/dotnet/aspnetcore/issues/33889" ) ]
117
+ public async Task DefaultEnvironment_Is_Development ( )
118
+ {
119
+ // Arrange
120
+ var expected = "Development" ;
121
+ using var client = _fixture . CreateDefaultClient ( ) ;
122
+
123
+ // Act
124
+ var content = await client . GetStringAsync ( "http://localhost/environment" ) ;
125
+
126
+ // Assert
127
+ Assert . Equal ( expected , content ) ;
128
+ }
129
+
130
+ [ Fact ]
131
+ [ QuarantinedTest ( "https://github.com/dotnet/aspnetcore/issues/33876" ) ]
132
+ public async Task Configuration_Can_Be_Overridden ( )
133
+ {
134
+ // Arrange
135
+ var fixture = _fixture . WithWebHostBuilder ( builder =>
136
+ {
137
+ builder . ConfigureAppConfiguration ( builder =>
138
+ {
139
+ var config = new [ ]
140
+ {
141
+ KeyValuePair . Create ( "Greeting" , "Bonjour tout le monde" ) ,
142
+ } ;
143
+
144
+ builder . AddInMemoryCollection ( config ) ;
145
+ } ) ;
146
+ } ) ;
147
+
148
+ var expected = "Bonjour tout le monde" ;
149
+ using var client = fixture . CreateDefaultClient ( ) ;
150
+
151
+ // Act
152
+ var content = await client . GetStringAsync ( "http://localhost/greeting" ) ;
153
+
154
+ // Assert
155
+ Assert . Equal ( expected , content ) ;
156
+ }
157
+
158
+ [ Fact ]
159
+ public async Task Environment_Can_Be_Overridden ( )
160
+ {
161
+ // Arrange
162
+ var fixture = _fixture . WithWebHostBuilder ( builder =>
163
+ {
164
+ builder . UseEnvironment ( Environments . Staging ) ;
165
+ } ) ;
166
+
167
+ var expected = "Staging" ;
168
+ using var client = fixture . CreateDefaultClient ( ) ;
169
+
170
+ // Act
171
+ var content = await client . GetStringAsync ( "http://localhost/environment" ) ;
172
+
173
+ // Assert
174
+ Assert . Equal ( expected , content ) ;
175
+ }
99
176
}
100
177
}
0 commit comments