Esempio n. 1
0
        private ScriptRunner CreateScriptRunner()
        {
            var logFactory     = TestOutputHelper.CreateTestLogFactory();
            var scriptCompiler = new ScriptCompiler(logFactory, false);

            return(new ScriptRunner(scriptCompiler, logFactory, ScriptConsole.Default));
        }
        public void ShouldThrowExceptionOnRestoreError()
        {
            using (var projectFolder = new DisposableFolder())
            {
                var pathToProjectFile = Path.Combine(projectFolder.Path, "script.csproj");

                var projectFile = new ProjectFile();
                projectFile.PackageReferences.Add(ValidPackageReferenceA);
                projectFile.PackageReferences.Add(InvalidPackageReferenceA);
                projectFile.PackageReferences.Add(ValidPackageReferenceB);
                projectFile.Save(pathToProjectFile);

                var projectFileInfo = new ProjectFileInfo(pathToProjectFile, string.Empty);

                var logFactory    = TestOutputHelper.CreateTestLogFactory();
                var commandRunner = new CommandRunner(logFactory);
                var restorer      = new DotnetRestorer(commandRunner, logFactory);

                var exception = Assert.Throws <Exception>(() =>
                {
                    restorer.Restore(projectFileInfo, Array.Empty <string>());
                });

                Assert.Contains("NU1101", exception.Message); // unable to find package
            }
        }
        public void ShouldRestoreProjectPackageReferences()
        {
            using (var projectFolder = new DisposableFolder())
            {
                var pathToProjectFile = Path.Combine(projectFolder.Path, "script.csproj");

                var projectFile = new ProjectFile();
                projectFile.PackageReferences.Add(ValidPackageReferenceA);
                projectFile.PackageReferences.Add(ValidPackageReferenceB);
                projectFile.Save(pathToProjectFile);

                var projectFileInfo = new ProjectFileInfo(pathToProjectFile, string.Empty);

                var logFactory    = TestOutputHelper.CreateTestLogFactory();
                var commandRunner = new CommandRunner(logFactory);
                var restorer      = new DotnetRestorer(commandRunner, logFactory);

                var pathToProjectObjDirectory = Path.Combine(projectFolder.Path, "obj");

                Assert.False(Directory.Exists(pathToProjectObjDirectory));

                restorer.Restore(projectFileInfo, Array.Empty <string>());

                Assert.True(Directory.Exists(pathToProjectObjDirectory));
            }
        }
Esempio n. 4
0
        public void ShouldThrowMeaningfulExceptionWhenPassingAnInvalidAssetsFile()
        {
            var pathToAssetsFile   = Path.Combine(Path.GetTempPath(), "project.assets.json");
            var dependencyResolver = new ScriptDependencyContextReader(TestOutputHelper.CreateTestLogFactory());
            var exception          = Assert.Throws <InvalidOperationException>(() => dependencyResolver.ReadDependencyContext(pathToAssetsFile));

            Assert.Contains("Make sure that the file exists and that it is a valid 'project.assets.json' file.", exception.Message);
        }
Esempio n. 5
0
        private static Scaffolder CreateTestScaffolder(string installLocation)
        {
            var scriptEnvironment    = (ScriptEnvironment)Activator.CreateInstance(typeof(ScriptEnvironment), nonPublic: true);
            var installLocationField = typeof(ScriptEnvironment).GetField("_installLocation", BindingFlags.NonPublic | BindingFlags.Instance);

            installLocationField.SetValue(scriptEnvironment, new Lazy <string>(() => installLocation));
            var scriptConsole = new ScriptConsole(StringWriter.Null, StringReader.Null, StreamWriter.Null);
            var scaffolder    = new Scaffolder(TestOutputHelper.CreateTestLogFactory(), scriptConsole, scriptEnvironment);

            return(scaffolder);
        }
Esempio n. 6
0
        public void ShouldThrowMeaningfulExceptionWhenRuntimeTargetIsMissing()
        {
            using (var projectFolder = new DisposableFolder())
            {
                ProcessHelper.RunAndCaptureOutput("dotnet", "new console -n SampleLibrary", projectFolder.Path);
                ProcessHelper.RunAndCaptureOutput("dotnet", "restore", projectFolder.Path);
                var pathToAssetsFile   = Path.Combine(projectFolder.Path, "SampleLibrary", "obj", "project.assets.json");
                var dependencyResolver = new ScriptDependencyContextReader(TestOutputHelper.CreateTestLogFactory());

                var exception = Assert.Throws <InvalidOperationException>(() => dependencyResolver.ReadDependencyContext(pathToAssetsFile));
                Assert.Contains("Make sure that the project file was restored using a RID (runtime identifier).", exception.Message);
            }
        }
Esempio n. 7
0
 private ScriptParser CreateParser()
 {
     return(new ScriptParser(TestOutputHelper.CreateTestLogFactory()));
 }
        private CompilationDependencyResolver CreateCompilationDependencyResolver()
        {
            var resolver = new CompilationDependencyResolver(TestOutputHelper.CreateTestLogFactory());

            return(resolver);
        }
Esempio n. 9
0
 static ScriptTestRunner()
 {
     // Redirect log messages to the test output window when running in process (DEBUG)
     Program.CreateLogFactory = (verbosity, debugMode) => TestOutputHelper.CreateTestLogFactory();
 }
Esempio n. 10
0
        private RuntimeDependencyResolver CreateRuntimeDependencyResolver()
        {
            var resolver = new RuntimeDependencyResolver(TestOutputHelper.CreateTestLogFactory(), useRestoreCache: false);

            return(resolver);
        }
Esempio n. 11
0
 private LogFactory GetLogFactory()
 {
     return(TestOutputHelper.CreateTestLogFactory());
 }
Esempio n. 12
0
        private ScriptProjectProvider CreateProvider()
        {
            ScriptProjectProvider provider = new ScriptProjectProvider(TestOutputHelper.CreateTestLogFactory());

            return(provider);
        }