Streamlines migration classes and ctor dependencies... before there was issues because the current db provider was not set correctly so migrations couldn't actually rely onthe CurrentDatabaseProvider property!

This commit is contained in:
Shannon
2015-09-14 12:01:48 +02:00
parent 8d24ac3651
commit bee59e39a0
37 changed files with 413 additions and 504 deletions

View File

@@ -15,47 +15,46 @@ namespace Umbraco.Tests.Persistence.SyntaxProvider
[TestFixture]
public class SqlCeSyntaxProviderTests
{
[SetUp]
public void SetUp()
{
SqlSyntaxContext.SqlSyntaxProvider = new SqlCeSyntaxProvider();
}
[Test]
public void Can_Generate_Delete_SubQuery_Statement()
{
var sqlSyntax = new SqlCeSyntaxProvider();
var mediaObjectType = Guid.Parse(Constants.ObjectTypes.Media);
var subQuery = new Sql()
.Select("DISTINCT cmsContentXml.nodeId")
.From<ContentXmlDto>()
.InnerJoin<NodeDto>()
.On<ContentXmlDto, NodeDto>(left => left.NodeId, right => right.NodeId)
.From<ContentXmlDto>(sqlSyntax)
.InnerJoin<NodeDto>(sqlSyntax)
.On<ContentXmlDto, NodeDto>(sqlSyntax, left => left.NodeId, right => right.NodeId)
.Where<NodeDto>(dto => dto.NodeObjectType == mediaObjectType);
var sql = SqlSyntaxContext.SqlSyntaxProvider.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
var sqlOutput = sqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
Assert.AreEqual(@"DELETE FROM [cmsContentXml] WHERE [nodeId] IN (SELECT [nodeId] FROM (SELECT DISTINCT cmsContentXml.nodeId
FROM [cmsContentXml]
INNER JOIN [umbracoNode]
ON [cmsContentXml].[nodeId] = [umbracoNode].[id]
WHERE ([umbracoNode].[nodeObjectType] = @0)) x)".Replace(Environment.NewLine, " ").Replace("\n", " ").Replace("\r", " "),
sql.SQL.Replace(Environment.NewLine, " ").Replace("\n", " ").Replace("\r", " "));
WHERE ([umbracoNode].[nodeObjectType] = @0)) x)".Replace(Environment.NewLine, " ").Replace("\n", " ").Replace("\r", " "),
sqlOutput.SQL.Replace(Environment.NewLine, " ").Replace("\n", " ").Replace("\r", " "));
Assert.AreEqual(1, sql.Arguments.Length);
Assert.AreEqual(mediaObjectType, sql.Arguments[0]);
Assert.AreEqual(1, sqlOutput.Arguments.Length);
Assert.AreEqual(mediaObjectType, sqlOutput.Arguments[0]);
}
[NUnit.Framework.Ignore("This doesn't actually test anything")]
[Test]
public void Can_Generate_Create_Table_Statement()
{
var sqlSyntax = new SqlCeSyntaxProvider();
var type = typeof (NodeDto);
var definition = DefinitionFactory.GetTableDefinition(type);
string create = SqlSyntaxContext.SqlSyntaxProvider.Format(definition);
string primaryKey = SqlSyntaxContext.SqlSyntaxProvider.FormatPrimaryKey(definition);
var indexes = SqlSyntaxContext.SqlSyntaxProvider.Format(definition.Indexes);
var keys = SqlSyntaxContext.SqlSyntaxProvider.Format(definition.ForeignKeys);
string create = sqlSyntax.Format(definition);
string primaryKey = sqlSyntax.FormatPrimaryKey(definition);
var indexes = sqlSyntax.Format(definition.Indexes);
var keys = sqlSyntax.Format(definition.ForeignKeys);
Console.WriteLine(create);
Console.WriteLine(primaryKey);
@@ -73,32 +72,35 @@ WHERE ([umbracoNode].[nodeObjectType] = @0)) x)".Replace(Environment.NewLine, "
[Test]
public void Format_SqlServer_NonClusteredIndexDefinition_AddsNonClusteredDirective()
{
SqlSyntaxContext.SqlSyntaxProvider = new SqlServerSyntaxProvider();
var sqlSyntax = new SqlServerSyntaxProvider();
var indexDefinition = CreateIndexDefinition();
indexDefinition.IndexType = IndexTypes.NonClustered;
var actual = SqlSyntaxContext.SqlSyntaxProvider.Format(indexDefinition);
var actual = sqlSyntax.Format(indexDefinition);
Assert.AreEqual("CREATE NONCLUSTERED INDEX [IX_A] ON [TheTable] ([A])", actual);
}
[Test]
public void Format_SqlServer_NonClusteredIndexDefinition_UsingIsClusteredFalse_AddsClusteredDirective()
{
SqlSyntaxContext.SqlSyntaxProvider = new SqlServerSyntaxProvider();
var sqlSyntax = new SqlServerSyntaxProvider();
var indexDefinition = CreateIndexDefinition();
indexDefinition.IsClustered = false;
var actual = SqlSyntaxContext.SqlSyntaxProvider.Format(indexDefinition);
var actual = sqlSyntax.Format(indexDefinition);
Assert.AreEqual("CREATE CLUSTERED INDEX [IX_A] ON [TheTable] ([A])", actual);
}
[Test]
public void CreateIndexBuilder_SqlServer_NonClustered_CreatesNonClusteredIndex()
{
SqlSyntaxContext.SqlSyntaxProvider = new SqlServerSyntaxProvider();
var createExpression = new CreateIndexExpression { Index = { Name = "IX_A" } };
var sqlSyntax = new SqlServerSyntaxProvider();
var createExpression = new CreateIndexExpression(DatabaseProviders.SqlServer, new []{DatabaseProviders.SqlServer}, sqlSyntax)
{
Index = { Name = "IX_A" }
};
var builder = new CreateIndexBuilder(createExpression);
builder.OnTable("TheTable").OnColumn("A").Ascending().WithOptions().NonClustered();
Assert.AreEqual("CREATE NONCLUSTERED INDEX [IX_A] ON [TheTable] ([A])", createExpression.ToString());
@@ -107,8 +109,11 @@ WHERE ([umbracoNode].[nodeObjectType] = @0)) x)".Replace(Environment.NewLine, "
[Test]
public void CreateIndexBuilder_SqlServer_Unique_CreatesUniqueNonClusteredIndex()
{
SqlSyntaxContext.SqlSyntaxProvider = new SqlServerSyntaxProvider();
var createExpression = new CreateIndexExpression { Index = { Name = "IX_A" } };
var sqlSyntax = new SqlServerSyntaxProvider();
var createExpression = new CreateIndexExpression(DatabaseProviders.SqlServer, new[] { DatabaseProviders.SqlServer }, sqlSyntax)
{
Index = { Name = "IX_A" }
};
var builder = new CreateIndexBuilder(createExpression);
builder.OnTable("TheTable").OnColumn("A").Ascending().WithOptions().Unique();
Assert.AreEqual("CREATE UNIQUE NONCLUSTERED INDEX [IX_A] ON [TheTable] ([A])", createExpression.ToString());
@@ -117,8 +122,11 @@ WHERE ([umbracoNode].[nodeObjectType] = @0)) x)".Replace(Environment.NewLine, "
[Test]
public void CreateIndexBuilder_SqlServer_Clustered_CreatesClusteredIndex()
{
SqlSyntaxContext.SqlSyntaxProvider = new SqlServerSyntaxProvider();
var createExpression = new CreateIndexExpression { Index = { Name = "IX_A" } };
var sqlSyntax = new SqlServerSyntaxProvider();
var createExpression = new CreateIndexExpression(DatabaseProviders.SqlServer, new[] { DatabaseProviders.SqlServer }, sqlSyntax)
{
Index = { Name = "IX_A" }
};
var builder = new CreateIndexBuilder(createExpression);
builder.OnTable("TheTable").OnColumn("A").Ascending().WithOptions().Clustered();
Assert.AreEqual("CREATE CLUSTERED INDEX [IX_A] ON [TheTable] ([A])", createExpression.ToString());
@@ -134,11 +142,6 @@ WHERE ([umbracoNode].[nodeObjectType] = @0)) x)".Replace(Environment.NewLine, "
SchemaName = "dbo"
};
}
[TearDown]
public void TearDown()
{
SqlSyntaxContext.SqlSyntaxProvider = null;
}
}
}