/
SqlAdapter_Tests.cs
84 lines (70 loc) · 2.26 KB
/
SqlAdapter_Tests.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
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
namespace SIM.Adapters
{
using System;
using System.IO;
using System.Linq;
using JetBrains.Annotations;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using SIM.Base.Services;
using SIM.IO.Real;
[TestClass]
public class SqlAdapter_Tests
{
private const string DefaultEnvSqlPath = @"C:\Sitecore\etc\sim2\env\default\SqlServer.txt";
[NotNull]
private SqlAdapter Adapter { get; } = new SqlAdapter(new SqlConnectionString(File.ReadAllText(DefaultEnvSqlPath)));
[TestMethod]
public void DeleteDatabase_MissingDatabase()
{
Adapter.DeleteDatabase(GetRandomDatabaseName());
}
[TestMethod]
public void GetDatabaseFilePath_MissingDatabase()
{
var databaseName = GetRandomDatabaseName();
try
{
Adapter.GetDatabaseFilePath(databaseName);
}
catch (DatabaseDoesNotExistException ex)
{
Assert.AreEqual(databaseName, ex.DatabaseName);
Assert.AreEqual($"Failed to perform an operation with SqlServer. The requested '{databaseName}' database does not exist", ex.Message);
return;
}
Assert.Fail();
}
[TestMethod]
[DeploymentItem("Adapters\\SqlAdapter_Database.dacpac")]
public void Deploy_Check_Delete_Check()
{
var fileSystem = new RealFileSystem();
var databaseName = GetRandomDatabaseName();
var dacpac = fileSystem.ParseFile("SqlAdapter_Database.dacpac");
Assert.AreEqual(true, dacpac.Exists);
int count;
try
{
Adapter.DeployDatabase(databaseName, dacpac);
Assert.AreEqual(true, Adapter.DatabaseExists(databaseName));
Assert.AreEqual(true, !string.IsNullOrEmpty(Adapter.GetDatabaseFilePath(databaseName)));
var databases = Adapter.GetDatabases();
Assert.AreEqual(true, databases.Contains(databaseName));
count = databases.Count;
Assert.AreEqual(true, count >= 1);
}
finally
{
Adapter.DeleteDatabase(databaseName);
}
Assert.AreEqual(false, Adapter.DatabaseExists(databaseName));
var newCount = Adapter.GetDatabases().Count;
Assert.AreEqual(count - 1, newCount);
}
[NotNull]
private static string GetRandomDatabaseName()
{
return Guid.NewGuid().ToString("N");
}
}
}