-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathUriFixture.cs
36 lines (33 loc) · 1.22 KB
/
UriFixture.cs
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
namespace NetCash.Tests;
using System;
using Xunit;
public class UriFixture
{
[Theory]
[InlineData("/tmp/test.gnucash", "file:///tmp/test.gnucash")]
[InlineData(@"C:\Users\user\Documents\test.gnucash", @"file:///C:\Users\user\Documents\test.gnucash")]
[InlineData("file:///tmp/test.gnucash", true)]
[InlineData("xml:///tmp/test.gnucash", true)]
[InlineData("sqlite3:///tmp/test.gnucash", true)]
[InlineData("mysql://[email protected]:5432/gnucash", true)]
[InlineData("postgres://[email protected]:3306/gnucash", true)]
[InlineData("mysql://127.0.0.1:5432", false)] // no path
[InlineData("postgres://[email protected]:3306", false)] // no path
[InlineData("xxx://test.gnucash", false)] // invalid file scheme
public void Can_Parse_From_Strings(string input, object expectancy)
{
var parse = () => GnuCashUri.Parse(input);
switch (expectancy)
{
case false:
Assert.Throws<UriFormatException>(parse);
break;
case true:
Assert.Equal(input, parse().ToString());
break;
case string e:
Assert.Equal(e, parse().ToString());
break;
}
}
}