public void InstallCommandShouldInstallSinglePackageIfNamePassed() { var args = new ScriptCsArgs { AllowPreReleaseFlag = false, Install = "mypackage", ScriptName = null }; var fs = new Mock<IFileSystem>(); fs.Setup(x => x.GetWorkingDirectory(It.IsAny<string>())).Returns(@"C:\"); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, scriptpackResolver.Object, packageInstaller.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); packageInstaller.Verify(i => i.InstallPackages(It.Is<IEnumerable<IPackageReference>>(x => x.Count() == 1 && x.First().PackageId == "mypackage"), It.IsAny<bool>(), It.IsAny<Action<string>>()), Times.Once()); }
public void InstallCommandShouldInstallFromPackagesConfigIfNoNamePassed() { var args = new ScriptCsArgs { AllowPreReleaseFlag = false, Install = "", ScriptName = null }; var fs = new Mock<IFileSystem>(); fs.Setup(x => x.GetWorkingDirectory(It.IsAny<string>())).Returns(@"C:\"); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, scriptpackResolver.Object, packageInstaller.Object); resolver.Setup(i => i.GetPackages(It.IsAny<string>())).Returns(new List<IPackageReference> { new PackageReference("a", new FrameworkName(".NETFramework,Version=v4.0"), new Version()), new PackageReference("b", new FrameworkName(".NETFramework,Version=v4.0"), new Version()) }); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); packageInstaller.Verify(i => i.InstallPackages(It.Is<IEnumerable<IPackageReference>>(x => x.Count() == 2), It.IsAny<bool>(), It.IsAny<Action<string>>()), Times.Once()); }
public void ScriptExecCommandShouldInvokeWithScriptPassedFromArgs() { var args = new ScriptCsArgs { AllowPreRelease = false, Install = "", ScriptName = "test.csx" }; var fs = new Mock <IFileSystem>(); var resolver = new Mock <IPackageAssemblyResolver>(); var executor = new Mock <IScriptExecutor>(); var engine = new Mock <IScriptEngine>(); var scriptpackResolver = new Mock <IScriptPackResolver>(); var packageInstaller = new Mock <IPackageInstaller>(); var logger = new Mock <ILog>(); var filePreProcessor = new Mock <IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); executor.Verify(i => i.Execute(It.Is <string>(x => x == "test.csx"), It.IsAny <IEnumerable <string> >(), It.IsAny <IEnumerable <IScriptPack> >()), Times.Once()); }
public void ShouldCreateBinFolderIfItDoesNotExist() { var args = new ScriptCsArgs { Restore = true, ScriptName = "" }; var fs = new Mock<IFileSystem>(); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, scriptpackResolver.Object, packageInstaller.Object); const string CurrentDirectory = @"C:\"; const string BinFolder = @"C:\bin"; fs.Setup(x => x.GetWorkingDirectory(It.IsAny<string>())).Returns(CurrentDirectory); var binFolderCreated = false; fs.Setup(x => x.DirectoryExists(BinFolder)).Returns(() => binFolderCreated).Verifiable(); fs.Setup(x => x.CreateDirectory(BinFolder)).Callback(() => binFolderCreated = true).Verifiable(); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); fs.Verify(x => x.DirectoryExists(BinFolder), Times.AtLeastOnce()); fs.Verify(x => x.CreateDirectory(BinFolder), Times.Once()); }
public void ShouldCopyFilesInPathIfLastWriteTimeDiffersFromLastWriteTimeOfFileInBin() { var args = new ScriptCsArgs { Restore = true, ScriptName = "" }; var fs = new Mock<IFileSystem>(); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, scriptpackResolver.Object, packageInstaller.Object); const string CurrentDirectory = @"C:\"; var sourceFilePath = Path.Combine(CurrentDirectory, "fileName.cs"); var sourceWriteTime = new DateTime(2013, 3, 7); var destFilePath = Path.Combine(CurrentDirectory, "bin", "fileName.cs"); var destWriteTime = new DateTime(2013, 2, 7); fs.Setup(x => x.GetWorkingDirectory(It.IsAny<string>())).Returns(CurrentDirectory); fs.Setup(x => x.GetLastWriteTime(sourceFilePath)).Returns(sourceWriteTime).Verifiable(); fs.Setup(x => x.GetLastWriteTime(destFilePath)).Returns(destWriteTime).Verifiable(); resolver.Setup(i => i.GetAssemblyNames(CurrentDirectory, It.IsAny<Action<string>>())).Returns(new[] { sourceFilePath }); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); fs.Verify(x => x.Copy(sourceFilePath, destFilePath, true), Times.Once()); fs.Verify(x => x.GetLastWriteTime(sourceFilePath), Times.Once()); fs.Verify(x => x.GetLastWriteTime(destFilePath), Times.Once()); }
public void VersionCommandShouldOutputVersion() { var args = new ScriptCsArgs { Version = true }; var fs = new Mock <IFileSystem>(); var resolver = new Mock <IPackageAssemblyResolver>(); var executor = new Mock <IScriptExecutor>(); var engine = new Mock <IScriptEngine>(); var scriptpackResolver = new Mock <IScriptPackResolver>(); var packageInstaller = new Mock <IPackageInstaller>(); var logger = new Mock <ILog>(); var filePreProcessor = new Mock <IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); // clear the fake console output _outputText.Clear(); result.Execute(); Assert.Contains("scriptcs version " + _currentVersion.ToString(), _outputText.ToString()); }
public void ScriptExecCommandShouldInvokeWithScriptPassedFromArgs() { var args = new ScriptCsArgs { AllowPreRelease = false, Install = "", ScriptName = "test.csx" }; var fs = new Mock<IFileSystem>(); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var engine = new Mock<IScriptEngine>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var logger = new Mock<ILog>(); var filePreProcessor = new Mock<IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); executor.Verify(i => i.Execute(It.Is<string>(x => x == "test.csx"), It.IsAny<IEnumerable<string>>(), It.IsAny<IEnumerable<IScriptPack>>()), Times.Once()); }
public void ShouldDeleteBinFolder() { var args = new ScriptCsArgs { Clean = true }; var fs = new Mock<IFileSystem>(); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var engine = new Mock<IScriptEngine>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var logger = new Mock<ILog>(); var filePreProcessor = new Mock<IFilePreProcessor>(); var assemblyName = new Mock<IAssemblyName>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object, assemblyName.Object); fs.Setup(i => i.DirectoryExists(It.Is<string>(x => x.Contains(Constants.BinFolder)))).Returns(true); fs.Setup(i => i.GetWorkingDirectory(It.IsAny<string>())).Returns("c:\\"); var factory = new CommandFactory(root); var result = factory.CreateCommand(args, new string[0]); result.Execute(); fs.Verify(i => i.DirectoryExists(It.Is<string>(x => x.Contains(Constants.BinFolder))), Times.Once()); fs.Verify(i => i.DeleteDirectory(It.Is<string>(x => x.Contains(Constants.BinFolder))), Times.Once()); }
public void ShouldNotDeleteBinFolderIfDllsAreLeft() { var args = new ScriptCsArgs { Clean = true }; var fs = new Mock <IFileSystem>(); var resolver = new Mock <IPackageAssemblyResolver>(); var executor = new Mock <IScriptExecutor>(); var engine = new Mock <IScriptEngine>(); var scriptpackResolver = new Mock <IScriptPackResolver>(); var packageInstaller = new Mock <IPackageInstaller>(); var logger = new Mock <ILog>(); var filePreProcessor = new Mock <IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); fs.Setup(i => i.DirectoryExists(It.Is <string>(x => x.Contains(Constants.BinFolder)))).Returns(true); fs.Setup(i => i.GetWorkingDirectory(It.IsAny <string>())).Returns("c:/"); fs.Setup(i => i.EnumerateFiles(It.IsAny <string>(), It.IsAny <string>())).Returns(new[] { "c:/file.dll", "c:/file2.dll" }); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); fs.Verify(i => i.DeleteDirectory(It.Is <string>(x => x.Contains(Constants.BinFolder))), Times.Never()); }
public void ShouldCreateMissingBinFolder() { const string WorkingDirectory = @"C:\"; var binFolder = Path.Combine(WorkingDirectory, "bin"); var args = new ScriptCsArgs { ScriptName = "test.csx" }; var fs = new Mock<IFileSystem>(); fs.Setup(x => x.GetWorkingDirectory(It.IsAny<string>())).Returns(WorkingDirectory); fs.Setup(x => x.DirectoryExists(binFolder)).Returns(false); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var engine = new Mock<IScriptEngine>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var logger = new Mock<ILog>(); var filePreProcessor = new Mock<IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); fs.Verify(x => x.CreateDirectory(binFolder), Times.Once()); }
public void VersionCommandShouldOutputVersion() { var args = new ScriptCsArgs { Version = true }; var fs = new Mock<IFileSystem>(); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var engine = new Mock<IScriptEngine>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var logger = new Mock<ILog>(); var filePreProcessor = new Mock<IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); // clear the fake console output _outputText.Clear(); result.Execute(); Assert.Contains("scriptcs version " + _currentVersion.ToString(), _outputText.ToString()); }
public void ShouldCreateBinFolderIfItDoesNotExist() { var args = new ScriptCsArgs { Restore = true, ScriptName = "" }; var fs = new Mock <IFileSystem>(); var resolver = new Mock <IPackageAssemblyResolver>(); var executor = new Mock <IScriptExecutor>(); var engine = new Mock <IScriptEngine>(); var scriptpackResolver = new Mock <IScriptPackResolver>(); var packageInstaller = new Mock <IPackageInstaller>(); var logger = new Mock <ILog>(); var filePreProcessor = new Mock <IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); const string CurrentDirectory = @"C:\"; const string BinFolder = @"C:\bin"; fs.Setup(x => x.GetWorkingDirectory(It.IsAny <string>())).Returns(CurrentDirectory); var binFolderCreated = false; fs.Setup(x => x.DirectoryExists(BinFolder)).Returns(() => binFolderCreated).Verifiable(); fs.Setup(x => x.CreateDirectory(BinFolder)).Callback(() => binFolderCreated = true).Verifiable(); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); fs.Verify(x => x.DirectoryExists(BinFolder), Times.AtLeastOnce()); fs.Verify(x => x.CreateDirectory(BinFolder), Times.Once()); }
public void ShouldDeleteAllFilesResolvedFromPackages() { var args = new ScriptCsArgs { Clean = true }; var fs = new Mock<IFileSystem>(); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var engine = new Mock<IScriptEngine>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var logger = new Mock<ILog>(); var filePreProcessor = new Mock<IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); fs.Setup(i => i.DirectoryExists(It.Is<string>(x => x.Contains(Constants.BinFolder)))).Returns(true); fs.Setup(i => i.GetWorkingDirectory(It.IsAny<string>())).Returns("c:\\"); fs.Setup(i => i.FileExists(It.IsAny<string>())).Returns(true); resolver.Setup(i => i.GetAssemblyNames(It.IsAny<string>(), It.IsAny<Action<string>>())).Returns(new[] { "c:\\file.dll", "c:\\file2.dll" }); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); fs.Verify(i => i.FileDelete(It.IsAny<string>()), Times.Exactly(2)); }
public void InstallCommandShouldInstallSinglePackageIfNamePassed() { var args = new ScriptCsArgs { AllowPreRelease = false, Install = "mypackage", ScriptName = null }; const string CurrentDirectory = @"C:\"; var fs = new Mock <IFileSystem>(); fs.Setup(x => x.GetWorkingDirectory(It.IsAny <string>())).Returns(CurrentDirectory); fs.SetupGet(x => x.CurrentDirectory).Returns(CurrentDirectory); var resolver = new Mock <IPackageAssemblyResolver>(); var executor = new Mock <IScriptExecutor>(); var engine = new Mock <IScriptEngine>(); var scriptpackResolver = new Mock <IScriptPackResolver>(); var packageInstaller = new Mock <IPackageInstaller>(); var logger = new Mock <ILog>(); var filePreProcessor = new Mock <IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); packageInstaller.Verify(i => i.InstallPackages(It.Is <IEnumerable <IPackageReference> >(x => x.Count() == 1 && x.First().PackageId == "mypackage"), It.IsAny <bool>(), It.IsAny <Action <string> >()), Times.Once()); }
public void ShouldCreateMissingBinFolder() { const string WorkingDirectory = @"C:\"; var binFolder = Path.Combine(WorkingDirectory, "bin"); var args = new ScriptCsArgs { ScriptName = "test.csx" }; var fs = new Mock <IFileSystem>(); fs.Setup(x => x.GetWorkingDirectory(It.IsAny <string>())).Returns(WorkingDirectory); fs.Setup(x => x.DirectoryExists(binFolder)).Returns(false); var resolver = new Mock <IPackageAssemblyResolver>(); var executor = new Mock <IScriptExecutor>(); var engine = new Mock <IScriptEngine>(); var scriptpackResolver = new Mock <IScriptPackResolver>(); var packageInstaller = new Mock <IPackageInstaller>(); var logger = new Mock <ILog>(); var filePreProcessor = new Mock <IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); fs.Verify(x => x.CreateDirectory(binFolder), Times.Once()); }
private static ScriptServiceRoot CreateRoot(bool packagesFileExists = true) { const string CurrentDirectory = "C:\\"; const string PackagesFile = "C:\\packages.config"; var fs = new Mock <IFileSystem>(); fs.SetupGet(x => x.CurrentDirectory).Returns(CurrentDirectory); fs.Setup(x => x.FileExists(PackagesFile)).Returns(packagesFileExists); var resolver = new Mock <IPackageAssemblyResolver>(); var executor = new Mock <IScriptExecutor>(); var engine = new Mock <IScriptEngine>(); var scriptpackResolver = new Mock <IScriptPackResolver>(); var packageInstaller = new Mock <IPackageInstaller>(); var logger = new Mock <ILog>(); var filePreProcessor = new Mock <IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); return(root); }
public void ShouldCopyFilesInPathIfLastWriteTimeDiffersFromLastWriteTimeOfFileInBin() { var args = new ScriptCsArgs { Restore = true, ScriptName = "" }; var fs = new Mock <IFileSystem>(); var resolver = new Mock <IPackageAssemblyResolver>(); var executor = new Mock <IScriptExecutor>(); var engine = new Mock <IScriptEngine>(); var scriptpackResolver = new Mock <IScriptPackResolver>(); var packageInstaller = new Mock <IPackageInstaller>(); var logger = new Mock <ILog>(); var filePreProcessor = new Mock <IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); const string CurrentDirectory = @"C:\"; var sourceFilePath = Path.Combine(CurrentDirectory, "fileName.cs"); var sourceWriteTime = new DateTime(2013, 3, 7); var destFilePath = Path.Combine(CurrentDirectory, "bin", "fileName.cs"); var destWriteTime = new DateTime(2013, 2, 7); fs.Setup(x => x.GetWorkingDirectory(It.IsAny <string>())).Returns(CurrentDirectory); fs.Setup(x => x.GetLastWriteTime(sourceFilePath)).Returns(sourceWriteTime).Verifiable(); fs.Setup(x => x.GetLastWriteTime(destFilePath)).Returns(destWriteTime).Verifiable(); resolver.Setup(i => i.GetAssemblyNames(CurrentDirectory, It.IsAny <Action <string> >())).Returns(new[] { sourceFilePath }); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); fs.Verify(x => x.Copy(sourceFilePath, destFilePath, true), Times.Once()); fs.Verify(x => x.GetLastWriteTime(sourceFilePath), Times.Once()); fs.Verify(x => x.GetLastWriteTime(destFilePath), Times.Once()); }
public void NonManagedAssembliesAreExcluded() { const string nonManaged = "non-managed.dll"; var args = new ScriptCsArgs { AllowPreRelease = false, Install = "", ScriptName = "test.csx" }; var fs = new Mock<IFileSystem>(); fs.SetupGet(x => x.CurrentDirectory).Returns("C:\\"); fs.Setup(x => x.EnumerateFiles(It.IsAny<string>(), It.IsAny<string>())).Returns(new[] { "managed.dll", nonManaged }); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var engine = new Mock<IScriptEngine>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var logger = new Mock<ILog>(); var filePreProcessor = new Mock<IFilePreProcessor>(); var assemblyName = new Mock<IAssemblyName>(); assemblyName.Setup(x => x.GetAssemblyName(It.Is<string>(y => y == nonManaged))).Throws(new BadImageFormatException()); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object, assemblyName.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args, new string[0]); result.Execute(); executor.Verify(i => i.Initialize(It.Is<IEnumerable<string>>(x => !x.Contains(nonManaged)), It.IsAny<IEnumerable<IScriptPack>>()), Times.Once()); executor.Verify(i => i.Execute(It.Is<string>(x => x == "test.csx"), It.IsAny<string[]>()), Times.Once()); executor.Verify(i => i.Terminate(), Times.Once()); }
public CommandFactory(ScriptServiceRoot scriptServiceRoot) { _scriptServiceRoot = scriptServiceRoot; }
public void ShouldPromptForInput() { var mockFileSystem = new Mock<IFileSystem>(); mockFileSystem.SetupGet(x => x.CurrentDirectory).Returns("C:\\"); var builder = new StringBuilder(); var reader = new StringReader(Environment.NewLine); var writer = new StringWriter(builder); var console = new FakeConsole(writer, reader); var root = new ScriptServiceRoot( mockFileSystem.Object, Mock.Of<IPackageAssemblyResolver>(), Mock.Of<IScriptExecutor>(), Mock.Of<IScriptEngine>(), Mock.Of<IFilePreProcessor>(), Mock.Of<IScriptPackResolver>(), Mock.Of<IPackageInstaller>(), Mock.Of<ILog>(), Mock.Of<IAssemblyName>(), console); var commandFactory = new CommandFactory(root); var target = commandFactory.CreateCommand(new ScriptCsArgs { Repl = true }, new string[0]); target.Execute(); Assert.True(builder.ToString().EndsWith("> ")); Assert.Equal(1, console.ReadLineCounter); }
private static ScriptServiceRoot CreateRoot() { var fs = new Mock<IFileSystem>(); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, scriptpackResolver.Object, packageInstaller.Object); return root; }
public void ShouldReturnErrorIfThereIsExecuteException() { var args = new ScriptCsArgs { AllowPreRelease = false, Install = "", ScriptName = "test.csx" }; var fs = new Mock<IFileSystem>(); fs.SetupGet(x => x.CurrentDirectory).Returns("C:\\"); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); executor.Setup(i => i.Execute(It.IsAny<string>(), It.IsAny<string[]>())) .Returns(new ScriptResult { ExecuteException = new Exception("test") }); var engine = new Mock<IScriptEngine>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var logger = new Mock<ILog>(); var filePreProcessor = new Mock<IFilePreProcessor>(); var assemblyName = new Mock<IAssemblyName>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object, assemblyName.Object); var factory = new CommandFactory(root); var result = factory.CreateCommand(args, new string[0]); var commandResult = result.Execute(); Assert.Equal(CommandResult.Error, commandResult); logger.Verify(i => i.Error(It.IsAny<object>()), Times.Once()); }
private static ScriptServiceRoot CreateRoot(bool packagesFileExists = true) { const string CurrentDirectory = "C:\\"; const string PackagesFile = "C:\\packages.config"; var fs = new Mock<IFileSystem>(); fs.SetupGet(x => x.CurrentDirectory).Returns(CurrentDirectory); fs.Setup(x => x.FileExists(PackagesFile)).Returns(packagesFileExists); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var engine = new Mock<IScriptEngine>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var logger = new Mock<ILog>(); var filePreProcessor = new Mock<IFilePreProcessor>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, engine.Object, filePreProcessor.Object, scriptpackResolver.Object, packageInstaller.Object, logger.Object); return root; }
public void ShouldNotDeleteBinFolderIfDllsAreLeft() { var args = new ScriptCsArgs { Clean = true }; var fs = new Mock<IFileSystem>(); var resolver = new Mock<IPackageAssemblyResolver>(); var executor = new Mock<IScriptExecutor>(); var scriptpackResolver = new Mock<IScriptPackResolver>(); var packageInstaller = new Mock<IPackageInstaller>(); var root = new ScriptServiceRoot(fs.Object, resolver.Object, executor.Object, scriptpackResolver.Object, packageInstaller.Object); fs.Setup(i => i.DirectoryExists(It.Is<string>(x => x.Contains(Constants.BinFolder)))).Returns(true); fs.Setup(i => i.GetWorkingDirectory(It.IsAny<string>())).Returns("c:/"); fs.Setup(i => i.EnumerateFiles(It.IsAny<string>(), It.IsAny<string>())).Returns(new[] { "c:/file.dll", "c:/file2.dll" }); var factory = new CommandFactory(root); var result = factory.CreateCommand(args); result.Execute(); fs.Verify(i => i.DeleteDirectory(It.Is<string>(x => x.Contains(Constants.BinFolder))), Times.Never()); }