Skip to content

Commit 3db6870

Browse files
Improve code coverage
1 parent a3ec049 commit 3db6870

File tree

3 files changed

+143
-0
lines changed

3 files changed

+143
-0
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
using GenHTTP.Api.Routing;
2+
using Microsoft.VisualStudio.TestTools.UnitTesting;
3+
4+
namespace GenHTTP.Testing.Acceptance.Engine;
5+
6+
[TestClass]
7+
public class RoutingTests
8+
{
9+
10+
[TestMethod]
11+
public void TestComparers()
12+
{
13+
var path = new WebPathPart("%C3%A4%2F");
14+
15+
Assert.IsTrue(path == "ä/");
16+
Assert.IsTrue(path == "%C3%A4%2F");
17+
18+
Assert.IsTrue(path != "ö/");
19+
}
20+
21+
[TestMethod]
22+
public void TestEquality()
23+
{
24+
var one = new WebPathPart("%C3%A4%2F");
25+
var two = new WebPathPart("%C3%A4%2F");
26+
27+
Assert.IsTrue(one.Equals(two));
28+
Assert.IsTrue(two.Equals(one));
29+
30+
var three = new WebPathPart("ä/");
31+
32+
Assert.IsFalse(one.Equals(three));
33+
Assert.IsFalse(one.Equals(new List<int>()));
34+
Assert.IsFalse(one.Equals(null));
35+
}
36+
37+
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
using System.Net;
2+
using GenHTTP.Modules.Conversion;
3+
using GenHTTP.Modules.Conversion.Formatters;
4+
using GenHTTP.Modules.Functional;
5+
using Microsoft.VisualStudio.TestTools.UnitTesting;
6+
7+
namespace GenHTTP.Testing.Acceptance.Modules.Functional;
8+
9+
[TestClass]
10+
public class IntegrationTest
11+
{
12+
13+
[TestMethod]
14+
[MultiEngineTest]
15+
public async Task TestFormatters(TestEngine engine)
16+
{
17+
var formatting = Formatting.Empty()
18+
.Add<BoolFormatter>();
19+
20+
var api = Inline.Create()
21+
.Any("get-bool", (bool value) => value)
22+
.Formatters(formatting);
23+
24+
await using var host = await TestHost.RunAsync(api, engine: engine);
25+
26+
using var response = await host.GetResponseAsync("/get-bool?value=1");
27+
28+
await response.AssertStatusAsync(HttpStatusCode.OK);
29+
30+
Assert.AreEqual("1", await response.GetContentAsync());
31+
}
32+
33+
}
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
using System.Net;
2+
using System.Net.Http.Headers;
3+
using GenHTTP.Modules.Functional;
4+
using Microsoft.VisualStudio.TestTools.UnitTesting;
5+
6+
namespace GenHTTP.Testing.Acceptance.Modules.Functional;
7+
8+
[TestClass]
9+
public class MethodTest
10+
{
11+
12+
[TestMethod]
13+
[MultiEngineTest]
14+
public async Task TestAnyMethod(TestEngine engine)
15+
{
16+
var app = Inline.Create()
17+
.Any((List<int> data) => data.Count);
18+
19+
await using var host = await TestHost.RunAsync(app, engine: engine);
20+
21+
foreach (var method in new[]
22+
{
23+
HttpMethod.Post, HttpMethod.Put
24+
})
25+
{
26+
var request = host.GetRequest(method: method);
27+
28+
request.Content = new StringContent("[ 1, 2 ]");
29+
request.Content.Headers.ContentType = MediaTypeHeaderValue.Parse("application/json");
30+
31+
using var response = await host.GetResponseAsync(request);
32+
33+
await response.AssertStatusAsync(HttpStatusCode.OK);
34+
35+
Assert.AreEqual("2", await response.GetContentAsync());
36+
}
37+
}
38+
39+
[TestMethod]
40+
[MultiEngineTest]
41+
public async Task TestDelete(TestEngine engine)
42+
{
43+
var app = Inline.Create()
44+
.Delete(() => { });
45+
46+
await using var host = await TestHost.RunAsync(app, engine: engine);
47+
48+
var request = host.GetRequest(method: HttpMethod.Delete);
49+
50+
using var response = await host.GetResponseAsync(request);
51+
52+
await response.AssertStatusAsync(HttpStatusCode.NoContent);
53+
}
54+
55+
[TestMethod]
56+
[MultiEngineTest]
57+
public async Task TestHead(TestEngine engine)
58+
{
59+
var app = Inline.Create()
60+
.Head(() => "42");
61+
62+
await using var host = await TestHost.RunAsync(app, engine: engine);
63+
64+
var request = host.GetRequest(method: HttpMethod.Head);
65+
66+
using var response = await host.GetResponseAsync(request);
67+
68+
await response.AssertStatusAsync(HttpStatusCode.OK);
69+
70+
Assert.AreEqual("2", response.GetContentHeader("Content-Length"));
71+
}
72+
73+
}

0 commit comments

Comments
 (0)