コード例 #1
0
ファイル: PackageInstallerTests.cs プロジェクト: waf/scriptcs
            public void ShouldShowErrorIfOneOfPackagesFail()
            {
                var callbacks = new List <string>();
                var provider  = new Mock <IInstallationProvider>();

                provider.Setup(
                    i => i.InstallPackage(It.IsAny <IPackageReference>(), It.IsAny <bool>(), It.IsAny <Action <string> >()))
                .Returns(true);
                provider.Setup(
                    i => i.InstallPackage(It.Is <IPackageReference>(x => x.PackageId == "testId"), It.IsAny <bool>(), It.IsAny <Action <string> >()))
                .Returns(false);

                var references = new List <IPackageReference> {
                    new PackageReference("testId", VersionUtility.ParseFrameworkName("net40"), new Version("3.0")),
                    new PackageReference("testId2", VersionUtility.ParseFrameworkName("net40"), new Version("4.0")),
                    new PackageReference("testId3", VersionUtility.ParseFrameworkName("net40"), new Version("5.0"))
                };

                var installer = new PackageInstaller(provider.Object);

                installer.InstallPackages(references, true, msg => callbacks.Add(msg));

                provider.Verify(i => i.InstallPackage(It.IsAny <IPackageReference>(), It.IsAny <bool>(), It.IsAny <Action <string> >()), Times.Exactly(3));
                callbacks.Count.ShouldEqual(1);
                callbacks.Count(x => x.EndsWith("unsuccessful.")).ShouldEqual(1);
            }
コード例 #2
0
 private void InstallPackages()
 {
     System.Diagnostics.Stopwatch stopwatch = System.Diagnostics.Stopwatch.StartNew();
     using (Trace.WithIndent().Information("Installing NuGet packages"))
     {
         PackageInstaller.InstallPackages();
         stopwatch.Stop();
         Trace.Information($"NuGet packages installed in {stopwatch.ElapsedMilliseconds} ms");
     }
 }
コード例 #3
0
ファイル: Configurator.cs プロジェクト: tbolon/Wyam
        private void InstallPackages(FilePath configFilePath)
        {
            Stopwatch stopwatch = Stopwatch.StartNew();

            using (Trace.WithIndent().Information("Installing NuGet packages"))
            {
                PackageInstaller.InstallPackages(configFilePath);
                stopwatch.Stop();
                Trace.Information($"NuGet packages installed in {stopwatch.ElapsedMilliseconds} ms");
            }
        }
コード例 #4
0
ファイル: Configurator.cs プロジェクト: gep13/Wyam
        // Initialize the assembly manager (includes searching for module types)
        private void Initialize()
        {
            // Install packages
            using (Trace.WithIndent().Information("Installing NuGet packages"))
            {
                PackageInstaller.InstallPackages();
            }

            // Scan assemblies
            using (Trace.WithIndent().Information("Loading assemblies and scanning for types"))
            {
                AssemblyLoader.LoadAssemblies();
            }
        }
コード例 #5
0
        public async Task InstallDependencies()
        {
            if (MissingDepdencies.Any())
            {
                await PackageInstaller.InstallPackages(MissingDepdencies);

                var readMeGenerator = ActivatorUtilities.CreateInstance <ReadMeGenerator>(ServiceProvider);
                var isReadMe        = await readMeGenerator.GenerateStartupOrReadme(StartupContents.ToList());

                if (isReadMe)
                {
                    Logger.LogMessage("There are probably still some manual steps required");
                    Logger.LogMessage("Checkout the " + Constants.ReadMeOutputFileName + " file that got generated");
                }
            }
        }
コード例 #6
0
            public void ShouldInstallAllPassedPackages()
            {
                var provider = new Mock <IInstallationProvider>();

                var references = new List <IPackageReference>
                {
                    new PackageReference("testId", VersionUtility.ParseFrameworkName("net40"), new Version("3.0")),
                    new PackageReference("testId2", VersionUtility.ParseFrameworkName("net40"), new Version("4.0")),
                    new PackageReference("testId3", VersionUtility.ParseFrameworkName("net40"), new Version("5.0"))
                };

                var installer = new PackageInstaller(provider.Object, new TestLogProvider());

                installer.InstallPackages(references);

                provider.Verify(i => i.InstallPackage(It.IsAny <IPackageReference>(), It.IsAny <bool>()), Times.Exactly(3));
            }
コード例 #7
0
            public void ShouldNotInstallExistingPackages()
            {
                var provider = new Mock<IInstallationProvider>();
                provider.Setup(
                    i => i.IsInstalled(It.Is<IPackageReference>(x => x.PackageId == "testId"), It.IsAny<bool>()))
                        .Returns(true);

                var references = new List<IPackageReference> {
                    new PackageReference("testId", VersionUtility.ParseFrameworkName("net40"), new Version("3.0")),
                    new PackageReference("testId2", VersionUtility.ParseFrameworkName("net40"), new Version("4.0")),
                    new PackageReference("testId3", VersionUtility.ParseFrameworkName("net40"), new Version("5.0"))
                };

                var installer = new PackageInstaller(provider.Object);
                installer.InstallPackages(references);

                provider.Verify(i => i.InstallPackage(It.Is<IPackageReference>(x => x.PackageId == "testId"), It.IsAny<bool>(), It.IsAny<Action<string>>()), Times.Never());
            }
コード例 #8
0
ファイル: PackageInstallerTests.cs プロジェクト: waf/scriptcs
            public void ShouldNotInstallExistingPackages()
            {
                var provider = new Mock <IInstallationProvider>();

                provider.Setup(
                    i => i.IsInstalled(It.Is <IPackageReference>(x => x.PackageId == "testId"), It.IsAny <bool>()))
                .Returns(true);

                var references = new List <IPackageReference> {
                    new PackageReference("testId", VersionUtility.ParseFrameworkName("net40"), new Version("3.0")),
                    new PackageReference("testId2", VersionUtility.ParseFrameworkName("net40"), new Version("4.0")),
                    new PackageReference("testId3", VersionUtility.ParseFrameworkName("net40"), new Version("5.0"))
                };

                var installer = new PackageInstaller(provider.Object);

                installer.InstallPackages(references);

                provider.Verify(i => i.InstallPackage(It.Is <IPackageReference>(x => x.PackageId == "testId"), It.IsAny <bool>(), It.IsAny <Action <string> >()), Times.Never());
            }
コード例 #9
0
            public void ShouldShowSuccessIfNoneOfPackagesFail()
            {
                var logger   = new Mock <ILog>();
                var provider = new Mock <IInstallationProvider>();

                provider.Setup(
                    i => i.InstallPackage(It.IsAny <IPackageReference>(), It.IsAny <bool>()))
                .Returns(true);

                var references = new List <IPackageReference>
                {
                    new PackageReference("testId", VersionUtility.ParseFrameworkName("net40"), new Version("3.0")),
                    new PackageReference("testId2", VersionUtility.ParseFrameworkName("net40"), new Version("4.0")),
                    new PackageReference("testId3", VersionUtility.ParseFrameworkName("net40"), new Version("5.0"))
                };

                var installer = new PackageInstaller(provider.Object, logger.Object);

                installer.InstallPackages(references, true);

                logger.Verify(i => i.Info(It.Is <string>(x => x.EndsWith("successful."))), Times.Once());
            }
コード例 #10
0
            public void ShouldShowErrorIfOneOfPackagesFail()
            {
                var provider = new Mock <IInstallationProvider>();

                provider.Setup(
                    i => i.InstallPackage(It.Is <IPackageReference>(x => x.PackageId == "testId"), It.IsAny <bool>()))
                .Throws <Exception>();

                var references = new List <IPackageReference>
                {
                    new PackageReference("testId", VersionUtility.ParseFrameworkName("net40"), new Version("3.0")),
                    new PackageReference("testId2", VersionUtility.ParseFrameworkName("net40"), new Version("4.0")),
                    new PackageReference("testId3", VersionUtility.ParseFrameworkName("net40"), new Version("5.0"))
                };

                var installer = new PackageInstaller(provider.Object, new TestLogProvider());
                var exception = Record.Exception(() => installer.InstallPackages(references, true));

                provider.Verify(i => i.InstallPackage(It.IsAny <IPackageReference>(), It.IsAny <bool>()), Times.Exactly(3));
                exception.ShouldBeType <AggregateException>();
                ((AggregateException)exception).InnerExceptions.Count.ShouldEqual(1);
            }
コード例 #11
0
        public async Task InstallDependencies()
        {
            if (MissingDepdencies.Any())
            {
                var isReadMe        = true;
                var readMeGenerator = ActivatorUtilities.CreateInstance <ReadMeGenerator>(ServiceProvider);
                if (IsMsBuildProject)
                {
                    readMeGenerator.GenerateReadMeWithContent(GetMsBuildMissingDependencyReadMeText(MissingDepdencies));
                }
                else
                {
                    await PackageInstaller.InstallPackages(MissingDepdencies);

                    isReadMe = await readMeGenerator.GenerateStartupOrReadme(StartupContents.ToList());
                }

                if (isReadMe)
                {
                    Logger.LogMessage(MessageStrings.AdditionalStepsRequired);
                    Logger.LogMessage(string.Format(MessageStrings.CheckoutReadMe, Constants.ReadMeOutputFileName));
                }
            }
        }
コード例 #12
0
            public void ShouldThrowArgumentNullExWhenNoPackageIdsPassed()
            {
                var installer = new PackageInstaller(new Mock <IInstallationProvider>().Object, new Mock <ILog>().Object);

                Assert.Throws <ArgumentNullException>(() => installer.InstallPackages(null));
            }
コード例 #13
0
            public void ShouldShowSuccessIfNoneOfPackagesFail()
            {
                var callbacks = new List<string>();
                var provider = new Mock<IInstallationProvider>();
                provider.Setup(
                    i => i.InstallPackage(It.IsAny<IPackageReference>(), It.IsAny<bool>(), It.IsAny<Action<string>>()))
                        .Returns(true);

                var references = new List<IPackageReference> {
                    new PackageReference("testId", VersionUtility.ParseFrameworkName("net40"), new Version("3.0")),
                    new PackageReference("testId2", VersionUtility.ParseFrameworkName("net40"), new Version("4.0")),
                    new PackageReference("testId3", VersionUtility.ParseFrameworkName("net40"), new Version("5.0"))
                };

                var installer = new PackageInstaller(provider.Object);
                installer.InstallPackages(references, true, msg => callbacks.Add(msg));

                callbacks.Count.ShouldEqual(1);
                callbacks.Count(x => x.EndsWith("successful.")).ShouldEqual(1);
            }
コード例 #14
0
            public void ShouldThrowArgumentNullExWhenNoPackageIdsPassed()
            {
                var installer = new PackageInstaller(new Mock<IInstallationProvider>().Object);

                Assert.Throws<ArgumentNullException>(() => installer.InstallPackages(null));
            }