You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
130 lines
4.9 KiB
130 lines
4.9 KiB
using Microsoft.VisualStudio.TestTools.UnitTesting;
|
|
using Moq;
|
|
using OpenDBDiff.Abstractions.Schema.Model;
|
|
using OpenDBDiff.SqlServer.Schema.Model.Util;
|
|
using OpenDBDiff.Tests.Utils;
|
|
using System;
|
|
|
|
namespace OpenDBDiff.Tests.Model.Tests
|
|
{
|
|
[TestClass]
|
|
public class FormatCodeTests
|
|
{
|
|
private readonly ResourceFileExtractor extractor;
|
|
|
|
public FormatCodeTests()
|
|
{
|
|
this.extractor = new ResourceFileExtractor(".SqlSnippets.Triggers.");
|
|
}
|
|
|
|
[TestMethod]
|
|
[ExpectedException(typeof(InvalidOperationException))]
|
|
public void FindAndNormalizeCreate_BrokenThrowsException()
|
|
{
|
|
var triggerItemMock = new Mock<ISchemaBase>();
|
|
triggerItemMock.Setup(x => x.FullName).Returns("[dbo].[iutrgTriggerName]");
|
|
|
|
FormatCode.FindAndNormalizeCreate(triggerItemMock.Object, extractor.ReadFileFromResource("broken.sql"));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FindAndNormalizeCreate_NoBracket_ShouldNormalize()
|
|
{
|
|
var triggerItemMock = new Mock<ISchemaBase>();
|
|
triggerItemMock.Setup(x => x.FullName).Returns("[dbo].[iutrgTriggerName]");
|
|
|
|
var a = FormatCode.FindAndNormalizeCreate(triggerItemMock.Object, extractor.ReadFileFromResource("no-brackets.sql"));
|
|
|
|
var normalized = extractor.ReadFileFromResource("normalized.sql");
|
|
Assert.AreEqual(normalized, a.Body);
|
|
Assert.AreEqual(0, a.FindPosition);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FindAndNormalizeCreate_NoOwner_ShouldNormalize()
|
|
{
|
|
var triggerItemMock = new Mock<ISchemaBase>();
|
|
triggerItemMock.Setup(x => x.FullName).Returns("[dbo].[iutrgTriggerName]");
|
|
|
|
var a = FormatCode.FindAndNormalizeCreate(triggerItemMock.Object, extractor.ReadFileFromResource("no-owner.sql"));
|
|
|
|
var normalized = extractor.ReadFileFromResource("normalized.sql");
|
|
Assert.AreEqual(normalized, a.Body);
|
|
Assert.AreEqual(0, a.FindPosition);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FindAndNormalizeCreate_NormalizedSql_ShouldKeepSourceText()
|
|
{
|
|
var triggerItemMock = new Mock<ISchemaBase>();
|
|
triggerItemMock.Setup(x => x.FullName).Returns("[dbo].[iutrgTriggerName]");
|
|
|
|
var normalized = extractor.ReadFileFromResource("normalized.sql");
|
|
var a = FormatCode.FindAndNormalizeCreate(triggerItemMock.Object, normalized);
|
|
|
|
Assert.AreEqual(normalized, a.Body);
|
|
Assert.AreEqual(0, a.FindPosition);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FindAndNormalizeCreate_WithComment_ShouldNormalize()
|
|
{
|
|
var triggerItemMock = new Mock<ISchemaBase>();
|
|
triggerItemMock.Setup(x => x.FullName).Returns("[dbo].[iutrgTriggerName]");
|
|
|
|
var a = FormatCode.FindAndNormalizeCreate(triggerItemMock.Object, extractor.ReadFileFromResource("with-comments.sql"));
|
|
|
|
var normalized = extractor.ReadFileFromResource("normalized.sql");
|
|
Assert.AreEqual(62, a.FindPosition);
|
|
Assert.AreEqual(normalized, a.Body.Substring(a.FindPosition));
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FindCreate_BrokenReturnsNull()
|
|
{
|
|
var findResult = FormatCode.FindCreate(extractor.ReadFileFromResource("broken.sql"));
|
|
Assert.IsNull(findResult);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FindCreate_NoBracket_ShouldFindTheCreatePositions()
|
|
{
|
|
var findResult = FormatCode.FindCreate(extractor.ReadFileFromResource("no-brackets.sql"));
|
|
|
|
Assert.AreEqual(0, findResult.CreateBeginPosition);
|
|
Assert.AreEqual(13, findResult.TypeEndPosition);
|
|
Assert.AreEqual(30, findResult.NameEndPosition);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FindCreate_NoOwner_ShouldFindTheCreatePositions()
|
|
{
|
|
var findResult = FormatCode.FindCreate(extractor.ReadFileFromResource("no-owner.sql"));
|
|
|
|
Assert.AreEqual(0, findResult.CreateBeginPosition);
|
|
Assert.AreEqual(13, findResult.TypeEndPosition);
|
|
Assert.AreEqual(32, findResult.NameEndPosition);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FindCreate_Normalized_ShouldFindTheCreatePositions()
|
|
{
|
|
var findResult = FormatCode.FindCreate(extractor.ReadFileFromResource("normalized.sql"));
|
|
|
|
Assert.AreEqual(0, findResult.CreateBeginPosition);
|
|
Assert.AreEqual(13, findResult.TypeEndPosition);
|
|
Assert.AreEqual(38, findResult.NameEndPosition);
|
|
}
|
|
|
|
[TestMethod]
|
|
public void FindCreate_WithComment_ShouldFindTheCreatePositions()
|
|
{
|
|
var findResult = FormatCode.FindCreate(extractor.ReadFileFromResource("with-comments.sql"));
|
|
|
|
Assert.AreEqual(62, findResult.CreateBeginPosition);
|
|
Assert.AreEqual(75, findResult.TypeEndPosition);
|
|
Assert.AreEqual(100, findResult.NameEndPosition);
|
|
}
|
|
}
|
|
}
|