forked from aspnet/AspNetWebStack
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDatabaseTest.cs
More file actions
90 lines (76 loc) · 3.58 KB
/
Copy pathDatabaseTest.cs
File metadata and controls
90 lines (76 loc) · 3.58 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
// Copyright (c) .NET Foundation. All rights reserved.
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
using System;
using System.Collections.Generic;
using System.Data.Common;
using Microsoft.TestCommon;
using Moq;
using WebMatrix.Data.Test.Mocks;
namespace WebMatrix.Data.Test
{
public class DatabaseTest
{
[Fact]
public void OpenWithNullConnectionStringNameThrowsException()
{
Assert.ThrowsArgumentNullOrEmptyString(() => Database.Open(null), "name");
}
[Fact]
public void OpenConnectionStringWithNullConnectionStringThrowsException()
{
Assert.ThrowsArgumentNullOrEmptyString(() => Database.OpenConnectionString(null), "connectionString");
}
[Fact]
public void OpenConnectionStringWithEmptyConnectionStringThrowsException()
{
Assert.ThrowsArgumentNullOrEmptyString(() => Database.OpenConnectionString(String.Empty), "connectionString");
}
[Fact]
public void OpenNamedConnectionUsesConnectionStringFromConfigurationIfExists()
{
// Arrange
MockConfigurationManager mockConfigurationManager = new MockConfigurationManager();
Mock<DbConnection> mockConnection = new Mock<DbConnection>();
mockConnection.Setup(m => m.ConnectionString).Returns("connection string");
Mock<MockDbProviderFactory> mockProviderFactory = new Mock<MockDbProviderFactory>();
mockProviderFactory.Setup(m => m.CreateConnection("connection string")).Returns(mockConnection.Object);
mockConfigurationManager.AddConnection("foo", new ConnectionConfiguration(mockProviderFactory.Object, "connection string"));
// Act
Database db = Database.OpenNamedConnection("foo", mockConfigurationManager);
// Assert
Assert.Equal("connection string", db.Connection.ConnectionString);
}
[Fact]
public void OpenNamedConnectionThrowsIfNoConnectionFound()
{
// Arrange
IConfigurationManager mockConfigurationManager = new MockConfigurationManager();
// Act & Assert
Assert.Throws<InvalidOperationException>(() => Database.OpenNamedConnection("foo", mockConfigurationManager), "Connection string \"foo\" was not found.");
}
[Fact]
public void GetConnectionConfigurationGetConnectionForFileHandlersIfRegistered()
{
// Arrange
var mockHandler = new Mock<MockDbFileHandler>();
mockHandler.Setup(m => m.GetConnectionConfiguration("filename.foo")).Returns(new MockConnectionConfiguration("some file based connection"));
var handlers = new Dictionary<string, IDbFileHandler>
{
{ ".foo", mockHandler.Object }
};
// Act
IConnectionConfiguration configuration = Database.GetConnectionConfiguration("filename.foo", handlers);
// Assert
Assert.NotNull(configuration);
Assert.Equal("some file based connection", configuration.ConnectionString);
}
[Fact]
public void GetConnectionThrowsIfNoHandlersRegisteredForExtension()
{
// Arrange
var handlers = new Dictionary<string, IDbFileHandler>();
// Act
Assert.Throws<InvalidOperationException>(() => Database.GetConnectionConfiguration("filename.foo", handlers), "Unable to determine the provider for the database file \"filename.foo\".");
}
}
}