forked from Giorgi/DuckDB.NET
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConnectionStringTests.cs
More file actions
111 lines (94 loc) · 3.65 KB
/
Copy pathConnectionStringTests.cs
File metadata and controls
111 lines (94 loc) · 3.65 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
104
105
106
107
108
109
110
111
namespace DuckDB.NET.Test;
public class ConnectionStringTests
{
[Theory]
[InlineData(DuckDBConnectionStringBuilder.InMemoryConnectionString)]
[InlineData("DataSource = :memory:")]
[InlineData("Data Source=:memory:")]
[InlineData("Data Source = :memory:")]
[InlineData("DataSource= :memory:")]
[InlineData("Data Source= :memory:")]
[InlineData("DataSource = :memory:")]
[InlineData("Data Source = :memory:")]
[InlineData("DataSource =:memory:")]
[InlineData("Data Source =:memory:")]
[InlineData("DataSource=:Memory:")]
[InlineData("Data Source=:Memory:")]
[InlineData("datasource=:memory:")]
[InlineData("data source=:memory:")]
[InlineData("daTa source=:memory:")]
public void ExplicitConnectionStringTest(string connectionString)
{
using var connection = new DuckDBConnection(connectionString);
connection.Open();
connection.State.Should().Be(ConnectionState.Open);
}
[Theory]
[InlineData("DataSource = ")]
[InlineData("Source=:memory:")]
[InlineData("Data=:memory:")]
[InlineData("DataSource = :memory:;Something=else")]
public void InvalidConnectionStringTests(string connectionString)
{
using var connection = new DuckDBConnection(connectionString);
connection.Invoking(con => con.Open())
.Should().Throw<InvalidOperationException>();
}
[Fact]
public void ConnectionStringBuilderDataSourceTest()
{
var builder = new DuckDBConnectionStringBuilder
{
DataSource = DuckDBConnectionStringBuilder.InMemoryDataSource
};
using var connection = new DuckDBConnection(builder.ToString());
connection.Open();
connection.State.Should().Be(ConnectionState.Open);
}
[Fact]
public void ConnectionStringPropertiesTest()
{
var builder = new DuckDBConnectionStringBuilder
{
DataSource = DuckDBConnectionStringBuilder.InMemoryDataSource
};
using var connection = new DuckDBConnection(builder.ToString());
connection.Open();
connection.Database.Should().Be(DuckDBConnectionStringBuilder.InMemoryDataSource);
connection.DataSource.Should().Be(DuckDBConnectionStringBuilder.InMemoryDataSource);
connection.ConnectionString = "";
connection.Invoking(c => c.Database).Should().Throw<InvalidOperationException>();
connection.Invoking(c => c.DataSource).Should().Throw<InvalidOperationException>();
}
[Fact]
public void ConnectionStringBuilderSetPropertiesTest()
{
var builder = new DuckDBConnectionStringBuilder
{
DataSource = DuckDBConnectionStringBuilder.InMemoryDataSource,
["threads"] = 8,
["ACCESS_MODE"] = "automatic"
};
builder.ConnectionString.Should().Be("DataSource=:memory:;threads=8;ACCESS_MODE=automatic");
}
[Fact]
public void ConnectionStringBuilderSetNotExistingProperty()
{
var builder = new DuckDBConnectionStringBuilder
{
DataSource = DuckDBConnectionStringBuilder.InMemoryDataSource,
};
builder.Invoking(b => b["dummy"] = "prop").Should().Throw<InvalidOperationException>();
}
[Fact]
public void ConnectionStringBuilderGetPropertiesTest()
{
var builder = new DuckDBConnectionStringBuilder
{
ConnectionString = "DataSource = :memory:;Threads = 8;ACCESS_MODE=automatic"
};
builder.DataSource.Should().Be(DuckDBConnectionStringBuilder.InMemoryDataSource);
builder["threads"].Should().Be("8");
builder["access_mode"].Should().Be("automatic");
}
}