Completes: U4-6104 Remove SqlSyntaxContext - quite a large refactor and cleanup since the SqlSyntaxContext was used everywhere :( haven't run tests, etc... yet but the project builds now.

This commit is contained in:
Shannon
2015-02-22 21:36:02 +01:00
parent 693384bdf6
commit 905e58e3b6
261 changed files with 2004 additions and 3669 deletions

View File

@@ -15,24 +15,21 @@ 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)
.Where<NodeDto>(dto => dto.NodeObjectType == mediaObjectType);
.From<ContentXmlDto>(sqlSyntax)
.InnerJoin<NodeDto>(sqlSyntax)
.On<ContentXmlDto, NodeDto>(sqlSyntax, left => left.NodeId, right => right.NodeId)
.Where<NodeDto>(sqlSyntax, dto => dto.NodeObjectType == mediaObjectType);
var sql = SqlSyntaxContext.SqlSyntaxProvider.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
var sql = sqlSyntax.GetDeleteSubquery("cmsContentXml", "nodeId", subQuery);
Assert.AreEqual(@"DELETE FROM [cmsContentXml] WHERE [nodeId] IN (SELECT [nodeId] FROM (SELECT DISTINCT cmsContentXml.nodeId
FROM [cmsContentXml]
@@ -49,13 +46,15 @@ WHERE ([umbracoNode].[nodeObjectType] = @0)) x)".Replace(Environment.NewLine, "
[Test]
public void Can_Generate_Create_Table_Statement()
{
var type = typeof (NodeDto);
var definition = DefinitionFactory.GetTableDefinition(type);
var sqlSyntax = new SqlCeSyntaxProvider();
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);
var type = typeof (NodeDto);
var definition = DefinitionFactory.GetTableDefinition(type, sqlSyntax);
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,32 @@ 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(sqlSyntax, DatabaseProviders.SqlServerCE) { 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 +106,8 @@ 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(sqlSyntax, DatabaseProviders.SqlServerCE) { 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 +116,8 @@ 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(sqlSyntax, DatabaseProviders.SqlServerCE) { 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());
@@ -135,10 +134,5 @@ WHERE ([umbracoNode].[nodeObjectType] = @0)) x)".Replace(Environment.NewLine, "
};
}
[TearDown]
public void TearDown()
{
SqlSyntaxContext.SqlSyntaxProvider = null;
}
}
}