Ejemplo n.º 1
0
        public void InstallUninstallMaxPathGlobalModule()
        {
            using (var manager = new TemporaryFileManager())
            {
                var rootDir    = FilesystemPackageJsonTestHelpers.CreateRootPackage(manager, PkgSimple);
                var controller = NpmControllerFactory.Create(rootDir, string.Empty);

                using (var commander = controller.CreateNpmCommander())
                {
                    commander.InstallPackageByVersionAsync("yo", "^1.2.0", DependencyType.Standard, false).Wait();
                }

                Assert.IsNotNull(controller.RootPackage, "Cannot retrieve packages after install");
                Assert.IsTrue(controller.RootPackage.Modules.Contains("yo"), "Package failed to install");

                using (var commander = controller.CreateNpmCommander())
                {
                    commander.UninstallPackageAsync("yo").Wait();
                }

                // Command has completed, but need to wait for all files/folders to be deleted.
                Thread.Sleep(5000);

                Assert.IsNotNull(controller.RootPackage, "Cannot retrieve packages after uninstall");
                Assert.IsFalse(controller.RootPackage.Modules.Contains("yo"), "Package failed to uninstall");
            }
        }
Ejemplo n.º 2
0
 private static INpmController DefaultNpmController(string projectHome, NpmPathProvider pathProvider)
 {
     return(NpmControllerFactory.Create(
                projectHome,
                NodejsConstants.NpmCachePath,
                false,
                pathProvider));
 }
Ejemplo n.º 3
0
 private static INpmController DefaultNpmController(string projectHome, NpmPathProvider pathProvider)
 {
     return(NpmControllerFactory.Create(
                projectHome,
                NodejsConstants.NpmCachePath,
                isProject: true,
                showMissingDevOptionalSubPackages: false,
                npmPathProvider: pathProvider));
 }
        public void AddPackageNoPackageJsonThenUninstall()
        {
            using (var manager = new TemporaryFileManager())
            {
                var rootDir = FilesystemPackageJsonTestHelpers.CreateRootPackage(manager, PkgSimple);
                File.Delete(Path.Combine(rootDir, "package.json"));
                var controller = NpmControllerFactory.Create(rootDir, string.Empty);
                controller.Refresh();
                var rootPackage = controller.RootPackage;
                Assert.IsNotNull(rootPackage, "Root package with no dependencies should not be null.");
                Assert.AreEqual(0, rootPackage.Modules.Count, "Should be no modules before package install.");

                using (var commander = controller.CreateNpmCommander())
                {
                    Task <bool> task = commander.InstallPackageByVersionAsync("sax", "*", DependencyType.Standard, true);
                    task.Wait();
                }

                Assert.AreNotEqual(
                    rootPackage,
                    controller.RootPackage,
                    "Root package should be different after package installed.");

                rootPackage = controller.RootPackage;
                Assert.IsNotNull(rootPackage, "Root package should not be null after package installed.");
                Assert.AreEqual(1, rootPackage.Modules.Count, "Should be one module after package installed.");

                var module = controller.RootPackage.Modules["sax"];
                Assert.IsNotNull(module, "Installed package should not be null.");
                Assert.AreEqual("sax", module.Name, "Module name mismatch.");
                Assert.IsNotNull(module.PackageJson, "Module package.json should not be null.");
                Assert.IsFalse(
                    module.IsListedInParentPackageJson,
                    "Should be listed as a dependency in parent package.json.");
                Assert.IsFalse(module.IsMissing, "Should not be marked as missing.");
                Assert.IsFalse(module.IsDevDependency, "Should not be marked as dev dependency.");
                Assert.IsFalse(module.IsOptionalDependency, "Should not be marked as optional dependency.");
                Assert.IsFalse(module.IsBundledDependency, "Should not be marked as bundled dependency.");
                Assert.IsTrue(module.HasPackageJson, "Module should have its own package.json");

                using (var commander = controller.CreateNpmCommander())
                {
                    Task <bool> task = commander.UninstallPackageAsync("sax");
                    task.Wait();
                }

                Assert.AreNotEqual(
                    rootPackage,
                    controller.RootPackage,
                    "Root package should be different after package uninstalled.");

                rootPackage = controller.RootPackage;
                Assert.IsNotNull(rootPackage, "Root package should not be null after package uninstalled.");
                Assert.AreEqual(0, rootPackage.Modules.Count, "Should be no modules after package installed.");
            }
        }
Ejemplo n.º 5
0
            private INpmController CreateController(IWorkspace workspace)
            {
                var projectHome = workspace.Location;

                var npmController = NpmControllerFactory.Create(
                    projectHome,
                    NodejsConstants.NpmCachePath);

                npmController.ErrorLogged     += this.WriteNpmOutput;
                npmController.ExceptionLogged += this.WriteNpmException;
                npmController.OutputLogged    += this.WriteNpmOutput;

                return(npmController);
            }
Ejemplo n.º 6
0
 private INpmController CreateNpmController()
 {
     if (null == _npmController)
     {
         _npmController = NpmControllerFactory.Create(
             _projectNode.ProjectHome,
             NodejsPackage.Instance.NpmOptionsPage.NpmCachePath,
             false,
             new NpmPathProvider(this));
         _npmController.CommandStarted   += NpmController_CommandStarted;
         _npmController.OutputLogged     += NpmController_OutputLogged;
         _npmController.ErrorLogged      += NpmController_ErrorLogged;
         _npmController.ExceptionLogged  += NpmController_ExceptionLogged;
         _npmController.CommandCompleted += NpmController_CommandCompleted;
     }
     return(_npmController);
 }
Ejemplo n.º 7
0
        public void TestAngularFullstackScaffoldedProject()
        {
            var rootDir    = CreateRootPackageDir();
            var controller = NpmControllerFactory.Create(rootDir, string.Empty);

            controller.OutputLogged += controller_OutputLogged;
            controller.ErrorLogged  += controller_OutputLogged;
            controller.Refresh();

            using (var commander = controller.CreateNpmCommander()) {
                var task = commander.InstallGlobalPackageByVersionAsync("yo", "*");
                task.Wait();
            }

            var info = new ProcessStartInfo();

            //  TODO!
        }
Ejemplo n.º 8
0
            private INpmController CreateController(string packageJsonPath)
            {
                Debug.Assert(Path.IsPathRooted(packageJsonPath));
                Debug.Assert(PackageJsonFactory.IsPackageJsonFile(packageJsonPath));

                var projectHome = Path.GetDirectoryName(packageJsonPath);

                var npmController = NpmControllerFactory.Create(
                    projectHome,
                    NodejsConstants.NpmCachePath,
                    isProject: false);

                npmController.ErrorLogged     += this.WriteNpmOutput;
                npmController.ExceptionLogged += this.WriteNpmException;
                npmController.OutputLogged    += this.WriteNpmOutput;

                return(npmController);
            }
Ejemplo n.º 9
0
        public void TestInstallUninstallMaxPathGlobalModule()
        {
            var controller = NpmControllerFactory.Create(string.Empty, string.Empty);

            using (var commander = controller.CreateNpmCommander()) {
                commander.InstallGlobalPackageByVersionAsync("yo", "^1.2.0").Wait();
            }

            Assert.IsNotNull(controller.GlobalPackages, "Cannot retrieve global packages after install");
            Assert.IsTrue(controller.GlobalPackages.Modules.Contains("yo"), "Global package failed to install");

            using (var commander = controller.CreateNpmCommander()) {
                commander.UninstallGlobalPackageAsync("yo").Wait();
            }

            // Command has completed, but need to wait for all files/folders to be deleted.
            Thread.Sleep(5000);

            Assert.IsNotNull(controller.GlobalPackages, "Cannot retrieve global packages after uninstall");
            Assert.IsFalse(controller.GlobalPackages.Modules.Contains("yo"), "Global package failed to uninstall");
        }
Ejemplo n.º 10
0
        private AnalysisDriver(string[] packages, string packagePath, bool installMissingPackages, bool installAll, DependencyType depType, bool cleanup, bool wait, Random random, TextWriter logger, TextWriter htmlLogger, int?dumpMembers, bool lowAnalysis, Dictionary <string, RunStats> baselineStats)
        {
            _packages               = packages;
            _random                 = random;
            _packagePath            = packagePath;
            _installMissingPackages = installMissingPackages;
            _installAll             = installAll;
            _depType                = depType;
            _cleanup                = cleanup;
            _wait          = wait;
            _logger        = logger;
            _htmlLogger    = htmlLogger;
            _dumpMembers   = dumpMembers;
            _lowAnalysis   = lowAnalysis;
            _baselineStats = baselineStats;

            WriteCsvHeader();

            _jsonResults.Append("[");

            _npmController = NpmControllerFactory.Create(packagePath, string.Empty);
            _npmController.OutputLogged += NpmControllerOutputLogged;
            _npmController.ErrorLogged  += NpmControllerErrorLogged;
            _npmController.Refresh();

            if (_installAll)
            {
                foreach (var package in _packages)
                {
                    if (!Directory.Exists(GetInstalledPackagePath(package.Split('@')[0])))
                    {
                        InstallPackage(package);
                    }
                }
            }
        }