-
-
Notifications
You must be signed in to change notification settings - Fork 10
Expand file tree
/
Copy pathAuthTests.cs
More file actions
103 lines (78 loc) · 3.75 KB
/
Copy pathAuthTests.cs
File metadata and controls
103 lines (78 loc) · 3.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
namespace NpgsqlRestTests;
public static partial class Database
{
public static void AuthTests()
{
script.Append("""
create function authorized() returns text language sql as 'select ''authorized''';
comment on function authorized() is 'authorize';
create function authorized_roles1() returns text language sql as 'select ''roles1''';
comment on function authorized_roles1() is 'authorize test_role';
create function authorized_roles2() returns text language sql as 'select ''roles2''';
comment on function authorized_roles2() is 'authorize test_role, role1';
create function authorized_roles3() returns text language sql as 'select ''roles3''';
comment on function authorized_roles3() is 'authorize test_role1 role1 test_role2 test_role1';
create function authorized_roles4() returns text language sql as 'select ''roles4''';
comment on function authorized_roles4() is 'authorize test_role1 test_role2 test_role3';
""");
}
}
[Collection("TestFixture")]
public class AuthTests(TestFixture test)
{
[Fact]
public async Task Test_authorized()
{
using var client = test.Application.CreateClient();
client.Timeout = TimeSpan.FromHours(1);
using var response1 = await client.PostAsync("/api/authorized/", null);
response1.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
using var login = await client.GetAsync("/login");
using var response2 = await client.PostAsync("/api/authorized/", null);
response2.StatusCode.Should().Be(HttpStatusCode.OK);
}
[Fact]
public async Task Test_authorized_roles1()
{
using var client = test.Application.CreateClient();
client.Timeout = TimeSpan.FromHours(1);
using var response1 = await client.PostAsync("/api/authorized-roles1/", null);
response1.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
using var login = await client.GetAsync("/login");
using var response2 = await client.PostAsync("/api/authorized-roles1/", null);
response2.StatusCode.Should().Be(HttpStatusCode.Forbidden);
}
[Fact]
public async Task Test_authorized_roles2()
{
using var client = test.Application.CreateClient();
client.Timeout = TimeSpan.FromHours(1);
using var response1 = await client.PostAsync("/api/authorized-roles2/", null);
response1.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
using var login = await client.GetAsync("/login");
using var response2 = await client.PostAsync("/api/authorized-roles2/", null);
response2.StatusCode.Should().Be(HttpStatusCode.OK);
}
[Fact]
public async Task Test_authorized_roles3()
{
using var client = test.Application.CreateClient();
client.Timeout = TimeSpan.FromHours(1);
using var response1 = await client.PostAsync("/api/authorized-roles3/", null);
response1.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
using var login = await client.GetAsync("/login");
using var response2 = await client.PostAsync("/api/authorized-roles3/", null);
response2.StatusCode.Should().Be(HttpStatusCode.OK);
}
[Fact]
public async Task Test_authorized_roles4()
{
using var client = test.Application.CreateClient();
client.Timeout = TimeSpan.FromHours(1);
using var response1 = await client.PostAsync("/api/authorized-roles4/", null);
response1.StatusCode.Should().Be(HttpStatusCode.Unauthorized);
using var login = await client.GetAsync("/login");
using var response2 = await client.PostAsync("/api/authorized-roles4/", null);
response2.StatusCode.Should().Be(HttpStatusCode.Forbidden);
}
}