public void ParserFailsWhenIncludesDontExist() { // Arrange var collector = new ScriptParser($"{TEST_PROJECT_PATH}/Pre-Deployment/Script.PreDeployment.MissingScript.sql", _variableResolver); // Act / Assert Assert.ThrowsException <System.IO.FileNotFoundException>(() => collector.CollectFileNames()); }
public void ParserFailsWhenSyntaxError() { // Arrange var collector = new ScriptParser($"{TEST_PROJECT_PATH}/Post-Deployment/Script.PostDeployment.SyntaxErrors.sql", _variableResolver); // Act / Assert Should.Throw <System.InvalidOperationException>(() => collector.CollectFileNames()) .Message.ShouldBe($"Incorrect syntax was encountered while parsing '{Environment.NewLine}'. File: ScriptWithErrors.sql"); }
public void IgnoresDirectivesOtherThanColonR() { // Arrange var collector = new ScriptParser($"{TEST_PROJECT_PATH}/Pre-Deployment/Script.PreDeployment.IgnoredDirective.sql", _variableResolver); // Act var result = collector.CollectFileNames(); // Assert result.ShouldNotBeNull(); result.Count().ShouldBe(1); }
public void CanParseFileWithNestedIncludesContainingRelativePaths() { // Arrange var collector = new ScriptParser($"{TEST_PROJECT_PATH}/Pre-Deployment/Script.PreDeployment.NestedRelativePaths.sql", _variableResolver); // Act var result = collector.CollectFileNames(); // Assert result.ShouldNotBeNull(); result.Count().ShouldBe(4); }
public void CanParseFileWithIncludes() { // Arrange var collector = new ScriptParser($"{TEST_PROJECT_PATH}/Pre-Deployment/Script.PreDeployment.SimpleInclude.sql", _variableResolver); // Act var result = collector.CollectFileNames(); // Assert result.ShouldNotBeNull(); result.Count().ShouldBe(1); }
public void CanParseFileWithIncludesFromRelativePaths() { // Arrange var collector = new ScriptParser($"{TEST_PROJECT_PATH}/Pre-Deployment/Script.PreDeployment.RelativePathIncludes.sql", _variableResolver); // Act var result = collector.CollectFileNames(); // Assert result.ShouldNotBeNull(); result.Count().ShouldBe(2); result.ToList().Take(2).Last().ShouldBe($"{TEST_PROJECT_PATH}/Pre-Deployment/./MoreScripts/Script2.sql"); }