Skip to content

Commit 823c9c5

Browse files
committed
Adds certificate tests
1 parent 75e9ace commit 823c9c5

File tree

4 files changed

+53
-5
lines changed

4 files changed

+53
-5
lines changed

azure-pipelines.yml

+4
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,10 @@ steps:
3636
minorVersion: 2
3737
patchVersion: 0
3838

39+
- script: |
40+
dotnet dev-certs https
41+
displayName: Setup Tests
42+
3943
- task: DotNetCoreCLI@2
4044
displayName: Test https
4145
inputs:

tests/https.Tests/CertificateTests.cs

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
using System.IO;
2+
using System.Threading.Tasks;
3+
using Xunit;
4+
5+
namespace Https.Tests
6+
{
7+
public class CertificateTests : IClassFixture<WebHostFixture>
8+
{
9+
readonly WebHostFixture _fixture;
10+
public CertificateTests(WebHostFixture fixture) =>
11+
_fixture = fixture;
12+
13+
[Fact]
14+
public async Task UntrustedCertificate_ShouldPresentErrorMessage_GivenCertificatesAreHonored()
15+
{
16+
var args = new[]
17+
{
18+
"post", $"{_fixture.HttpsUrl}/Mirror", "--form", "foo=bar", "lorem=ipsum"
19+
};
20+
21+
var result = await Https.ExecuteAsync(args);
22+
23+
Assert.Equal(1, result.ExitCode);
24+
}
25+
26+
[Fact]
27+
public async Task UntrustedCertificate_ShouldProcess_GivenCertificatesAreIgnored()
28+
{
29+
var args = new[]
30+
{
31+
"post", $"{_fixture.HttpsUrl}/Mirror", "--form", "--ignore-certificate", "foo=bar", "lorem=ipsum"
32+
};
33+
34+
var result = await Https.ExecuteAsync(args);
35+
36+
var actual = new StreamReader(result.StdOut).ReadToEnd();
37+
Assert.Equal("foo=bar&lorem=ipsum", actual);
38+
}
39+
}
40+
}

tests/https.Tests/IntegrationTests.cs

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public async Task MirrorTest_ShouldReflectFormUrlEncoded()
1818
{
1919
var args = new[]
2020
{
21-
"post", $"{_fixture.Url}/Mirror", "--form", "foo=bar", "lorem=ipsum"
21+
"post", $"{_fixture.HttpUrl}/Mirror", "--form", "foo=bar", "lorem=ipsum"
2222
};
2323

2424
var result = await Https.ExecuteAsync(args);
@@ -32,7 +32,7 @@ public async Task MirrorTest_ShouldReflectJson()
3232
{
3333
var args = new[]
3434
{
35-
"post", $"{_fixture.Url}/Mirror", "--json", "foo=bar", "lorem=ipsum"
35+
"post", $"{_fixture.HttpUrl}/Mirror", "--json", "foo=bar", "lorem=ipsum"
3636
};
3737

3838
var result = await Https.ExecuteAsync(args);
@@ -46,7 +46,7 @@ public async Task MirrorTest_ShouldReflectXml()
4646
{
4747
var args = new[]
4848
{
49-
"post", $"{_fixture.Url}/Mirror", "--xml=root", "foo=bar", "lorem=ipsum"
49+
"post", $"{_fixture.HttpUrl}/Mirror", "--xml=root", "foo=bar", "lorem=ipsum"
5050
};
5151

5252
var result = await Https.ExecuteAsync(args);

tests/https.Tests/WebHostFixture.cs

+6-2
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,16 @@ public class WebHostFixture : IDisposable
1111
readonly IWebHost _webHost;
1212
readonly Task _task;
1313
readonly CancellationTokenSource _cts;
14-
public string Url { get; }
14+
public string HttpUrl { get; }
15+
public string HttpsUrl { get; }
1516

1617
public WebHostFixture()
1718
{
1819
_webHost = WebHost.CreateDefaultBuilder()
19-
.UseUrls(Url = "http://localhost:5000")
20+
.UseUrls(
21+
HttpUrl = "http://localhost:5000",
22+
HttpsUrl = "https://localhost:5001"
23+
)
2024
.UseStartup<Startup>()
2125
.Build();
2226
_cts = new CancellationTokenSource();

0 commit comments

Comments
 (0)