forked from npgsql/npgsql
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathPgPassEntryTests.cs
More file actions
100 lines (79 loc) · 2.78 KB
/
PgPassEntryTests.cs
File metadata and controls
100 lines (79 loc) · 2.78 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
using System;
using NUnit.Framework;
using NUnit.Framework.Constraints;
namespace Npgsql.Tests;
public class PgPassEntryTests
{
[Test]
public void Parses_well_formed_entry()
{
var input = "test:1234:test2:test3:test4";
var entry = PgPassFile.Entry.Parse(input);
Assert.That(entry, Is.Not.Null);
Assert.That(entry.Host, Is.EqualTo("test"));
Assert.That(entry.Port, Is.EqualTo(1234));
Assert.That(entry.Database, Is.EqualTo("test2"));
Assert.That(entry.Username, Is.EqualTo("test3"));
Assert.That(entry.Password, Is.EqualTo("test4"));
}
[Test]
[TestCase("test:1234:test2:test3")]
[TestCase("test:myport:test2:test3:test4")]
public void Bad_entry_throws(string input)
{
ActualValueDelegate<object> createDelegate = () => PgPassFile.Entry.Parse(input);
Assert.That(createDelegate, Throws.TypeOf<FormatException>());
}
[Test]
public void Escaped_characters()
{
var input = "t\\:est:1234:test2:test3:test\\\\4";
var entry = PgPassFile.Entry.Parse(input);
Assert.That(entry, Is.Not.Null);
Assert.That(entry.Host, Is.EqualTo("t:est"));
Assert.That(entry.Port, Is.EqualTo(1234));
Assert.That(entry.Database, Is.EqualTo("test2"));
Assert.That(entry.Username, Is.EqualTo("test3"));
Assert.That(entry.Password, Is.EqualTo("test\\4"));
}
[Test]
public void Match_true_for_exact_match()
{
var input = "test:1234:test2:test3:test4";
var entry = PgPassFile.Entry.Parse(input);
var isMatch = entry.IsMatch("test", 1234, "test2", "test3");
Assert.That(isMatch, Is.True);
}
[Test]
public void Match_true_for_wildcard_entry()
{
var input = "*:1234:test2:test3:test4";
var entry = PgPassFile.Entry.Parse(input);
var isMatch = entry.IsMatch("test", 1234, "test2", "test3");
Assert.That(isMatch, Is.True);
}
[Test]
public void Match_true_for_wildcard_query()
{
var input = "test:1234:test2:test3:test4";
var entry = PgPassFile.Entry.Parse(input);
var isMatch = entry.IsMatch(null, 1234, "test2", "test3");
Assert.That(isMatch, Is.True);
}
[Test]
public void Match_false_for_bad_query()
{
var input = "test:1234:test2:test3:test4";
var entry = PgPassFile.Entry.Parse(input);
var isMatch = entry.IsMatch("notamatch", 1234, "test2", "test3");
Assert.That(isMatch, Is.False);
}
[Test]
public void Match_true_for_null_query()
{
var input = "test:1234:test2:test3:test4";
var entry = PgPassFile.Entry.Parse(input);
var isMatch = entry.IsMatch(null, 1234, "test2", "test3");
Assert.That(isMatch, Is.True);
}
}