Example #1
0
        private PowerShellPackageProvider Create(string psModule)
        {
            dynamic ps = new DynamicPowershell();

            try {
                // load the powershell provider functions into this runspace.
                var psf = ps.ImportModule(Name: PowerShellProviderFunctions, PassThru: true);

                DynamicPowershellResult result = ps.ImportModule(Name: psModule, PassThru: true);
                if (!result.LastIsTerminatingError)
                {
                    var providerModule = result.Value as PSModuleInfo;
                    if (result.Success && providerModule != null)
                    {
                        try {
                            return(new PowerShellPackageProvider(ps, providerModule));
                        } catch (Exception e) {
                            e.Dump();
                        }
                    }
                }
            } catch (Exception e) {
                // something didn't go well.
                // skip it.
                e.Dump();
            }

            // didn't import correctly.
            ps.Dispose();
            return(null);
        }
Example #2
0
        public void NuPack(string path)
        {
            using (dynamic ps = Runspace.DefaultRunspace.Dynamic()) {
                DynamicPowershellResult results = ps.InvokeExpression(@"nuget.exe pack ""{0}"" 2>&1".format(path));

                bool lastIsBlank = false;
                foreach (var r in results)
                {
                    string s = r.ToString();
                    if (string.IsNullOrWhiteSpace(s))
                    {
                        if (lastIsBlank)
                        {
                            continue;
                        }
                        lastIsBlank = true;
                    }
                    else
                    {
                        if (s.IndexOf("Issue: Assembly outside lib folder") > -1)
                        {
                            continue;
                        }
                        if (s.IndexOf("folder and hence it won't be added as reference when the package is installed into a project") > -1)
                        {
                            continue;
                        }
                        if (s.IndexOf("Solution: Move it into the 'lib' folder if it should be referenced") > -1)
                        {
                            continue;
                        }
                        if (s.IndexOf("issue(s) found with package") > -1)
                        {
                            continue;
                        }

                        if (s.IndexOf("Successfully created package '") > -1)
                        {
                            var scp = s.IndexOf('\'') + 1;
                            var pkg = s.Substring(scp, s.LastIndexOf('\'') - scp);
                            if (pkg.Length > 0)
                            {
                                (_packages ?? (_packages = new List <string>())).Add(pkg);
                            }
                        }
                        lastIsBlank = false;
                    }

                    // Issue: Assembly outside lib folder.
                    // Description: The assembly 'build\native\bin\Win32\v110\Release\WinRT\casablanca110.winrt.dll' is not inside the 'lib' folder and hence it won't be added as reference when the package is installed into a project.
                    // Solution: Move it into the 'lib' folder if it should be referenced.

                    Event <Message> .Raise(" >", "{0}", s);
                }
                if (results.LastIsTerminatingError)
                {
                    throw new ClrPlusException("NuGet Pack Failed");
                }
            }
        }
Example #3
0
        public void TestBootstrapNuGet()
        {
            // delete any copies of nuget if they are installed.
            if (IsNuGetInstalled)
            {
                DeleteNuGet();
            }

            // verify that nuget is not installed.
            Assert.False(IsNuGetInstalled, "NuGet is still installed at :".format(NuGetPath));

            var ps = NewPowerShellSession;

            // ask onget for the nuget package provider, bootstrapping if necessary
            DynamicPowershellResult result = ps.GetPackageProvider(Name: "NuGet", ForceBootstrap: true, IsTesting: true);

            Assert.False(result.IsFailing);

            // did we get back one item?
            var items = result.ToArray();

            Assert.Equal(1, items.Length);

            // and is the nuget.exe where we expect it?
            Assert.True(IsNuGetInstalled);
        }
Example #4
0
        public void TestFindPackageMismatchedVersions()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.FindPackage(Provider: "Nuget", Name: "Nuget", Version: "1.5", MaximumVersion: "1.0", IsTesting: true);

            Assert.True(result.IsFailing, "Managed to find package with invalid Max/Min version parameter combination.");
        }
Example #5
0
        public void TestFindPackageAllVersionFail()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.FindPackage(Provider: "Nuget", Name: "Nuget", Version: "1.0", MaximumVersion: "1.5", AllVersion: "2.0", IsTesting: true);

            result.WaitForCompletion();
            Assert.True(result.IsFailing, "Managed to find package with invalid AllVersion parameter.");
        }
Example #6
0
        public void TestFindPackageNegReqVersion()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.FindPackage(Provider: "Nuget", Name: "Nuget", RequiredVersion: "-1.5", IsTesting: true);

            result.WaitForCompletion();
            Assert.True(result.IsFailing, "Managed to find package with negative RequiredVersion.");
        }
Example #7
0
        public void TestFindPackageReqVersion()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.FindPackage(Provider: "Nuget", Name: "Nuget", RequiredVersion: "1.5", IsTesting: true);

            result.WaitForCompletion();
            Assert.False(result.IsFailing, "Failed to find package with RequiredVersion parameter.");
        }
Example #8
0
        //TODO
        //Has warning, not error, impossible to check at the moment. [BUG]
        public void TestFindPackageInvalidProvider()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.FindPackage(Provider: "1THIS_3SHOULD_5NEVER_7BE_9FOUND_11EVER", IsTesting: true);

            result.WaitForCompletion();
            Assert.True(result.Success, "Found package with invalid name.");
        }
Example #9
0
        public void TestFindPackage()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.FindPackage(Provider: "Nuget", IsTesting: true);

            result.WaitForCompletion();
            Assert.False(result.IsFailing, "Failed to find package with nuget provider.");
        }
Example #10
0
        public void TestGetPackageProvider()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.GetPackageProvider(IsTesting: true);

            result.WaitForCompletion();
            Assert.False(result.IsFailing, "Failed to get package provider.");
        }
Example #11
0
        public void TestFindPackageLongName()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.FindPackage(Provider: "Nuget", Name: LongName, IsTesting: true);

            result.WaitForCompletion();
            Assert.True(result.IsFailing, "Found an invalid name.");
        }
Example #12
0
        public void TestFindPackageEmptyStringName()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.FindPackage(Provider: "Nuget", Name: "", IsTesting: true);

            result.WaitForCompletion();
            Assert.False(result.IsFailing);
        }
Example #13
0
        public void TestSavePackageInvalidDestination()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.SavePackage(Provider: "Nuget", Name: "Adept.Nugetrunner", Destination: "c:\\failLocation", IsTesting: true);

            result.WaitForCompletion();
            Assert.True(result.IsFailing); //TODO
        }
Example #14
0
 private IEnumerable <PSModuleInfo> ModulesFromResult(DynamicPowershellResult result)
 {
     if (result.Success && result.Value != null)
     {
         foreach (var module in result.OfType <PSModuleInfo>())
         {
             yield return(module);
         }
     }
 }
Example #15
0
        public void TestSavePackageReqVersion()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.SavePackage(Provider: "Nuget", Name: "Adept.NugetRunner", Destination: TempFolder, RequiredVersion: "1.0", IsTesting: true);

            result.WaitForCompletion();
            Assert.True(File.Exists("C:\\tempTestDirectoryZXY\\Adept.NuGetRunner.1.0.nupkg"), "Save failed, package with RequiredVersion parameter not found.");
            Directory.Delete(TempFolder, true);
        }
Example #16
0
        public void TestSavePackageLongName()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.SavePackage(Provider: "Nuget", Name: LongName, Destination: TempFolder, IsTesting: true);

            result.WaitForCompletion();
            Assert.True(result.IsFailing);
            Directory.Delete(TempFolder, true);
        }
Example #17
0
        public void TestGetPackageNegReqVersion()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.GetPackage(Provider: "Nuget", Name: "adept.nugetrunner", RequiredVersion: "-1.0", Force: true, Destination: TempFolder, IsTesting: true);

            result.WaitForCompletion();
            Assert.True(result.IsFailing);
            Directory.Delete(TempFolder, true);
        }
Example #18
0
        public void TestSavePackageNegMinVersion()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.SavePackage(Provider: "Nuget", Name: "Adept.NugetRunner", Destination: TempFolder, Version: "-1.0.0.2", IsTesting: true);

            result.WaitForCompletion();
            Assert.True(result.IsFailing, "Managed to save package with invalid MinimumVersion parameter.");
            Directory.Delete(TempFolder, true);
        }
Example #19
0
        //[Fact]
        public void TestGetPackageNullName()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result2 = ps.GetPackage(Provider: "Nuget", Name: null, Force: true, Destination: TempFolder, IsTesting: true);

            result2.WaitForCompletion();
            Assert.True(result2.IsFailing);
            Directory.Delete(TempFolder, true);
        }
Example #20
0
        public void TestSavePackageDestination()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.SavePackage(Provider: "Nuget", Name: "Adept.NugetRunner", Destination: TempFolder, IsTesting: true);

            result.WaitForCompletion();
            Assert.False(File.Exists("C:\\tempTestDirectoryZXY\\Adept.NuGetRunner.1.0.nupkg"), "Failed to save package in destination.");
            Directory.Delete(TempFolder, true);
        }
Example #21
0
        public void TestFindPackagePipeProvider()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.GetPackageProvider(Name: "Nuget", IsTesting: true);

            result.WaitForCompletion();
            DynamicPowershellResult result2 = ps.FindPackage(result, Name: "adept.nugetrunner", IsTesting: true);

            result.WaitForCompletion();
            Assert.False(result2.IsFailing, "Failed to pipe provider to Find Package.");
        }
Example #22
0
        public void TestInstallPackageBigMinVersion()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.InstallPackage(Provider: "Nuget", Name: "Adept.Nugetrunner", MinimumVersion: "999", Force: true, Destination: TempFolder, IsTesting: true);

            result.WaitForCompletion();
            Assert.True(result.IsFailing);

            Directory.Delete(TempFolder, true);
        }
        public void TestPipeline()
        {
            dynamic ps = new DynamicPowershell();
            DynamicPowershellResult result = ps.Dir(@"c:\");

            DynamicPowershellResult result2 = ps.TestPath(result);

            foreach (var r in result2)
            {
                Console.WriteLine(r);
            }
        }
Example #24
0
        public void TestUnregisterPackageSource()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.RegisterPackageSource(Name: "nugettest.org", Provider: "nuget", Location: "https://www.nuget.org/api/v2/", IsTesting: true);

            result.WaitForCompletion();
            DynamicPowershellResult result2 = ps.UnregisterPackageSource(Name: "nugettest.org", Provider: "Nuget", Location: "https://www.nuget.org/api/v2/", IsTesting: true);

            result2.WaitForCompletion();
            Assert.False(result2.IsFailing);
        }
Example #25
0
        // [Fact] //TODO : HOW TO INSERT NULL AND MAKE IT WORK
        public void TestInstallPackageNullReqVersion()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.InstallPackage(Provider: "Nuget", Name: "Adept.Nugetrunner", RequiredVersion: null, Force: true, Destination: TempFolder, IsTesting: true);

            result.WaitForCompletion();
            Assert.False(result.Success);

            Directory.Delete(TempFolder, true);
        }
Example #26
0
        public void TestGetPackageProviderName()
        {
            var ps = NewPowerShellSession;

            DynamicPowershellResult result = ps.GetPackageProvider(Name: "NuGet", ForceBootstrap: true, Force: true, IsTesting: true);

            result.WaitForCompletion();
            Assert.False(result.IsFailing, "Failed to get package provider.");

            var items = result.ToArray();

            Assert.Equal(1, items.Length);
        }
Example #27
0
        public void TestSavePackagePipeName()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.FindPackage(Name: "adept.Nuget", IsTesting: true);

            result.WaitForCompletion();
            DynamicPowershellResult result2 = ps.SavePackage(result, Provider: "nuget", Destination: TempFolder, IsTesting: true);

            result2.WaitForCompletion();
            Assert.True(File.Exists("C:\\tempTestDirectoryZXY\\Adept.NuGetRunner.1.0.0.2.nupkg"), "Save failed, package not found.");
            Directory.Delete(TempFolder, true);
        }
Example #28
0
        public void TestUninstallPackageMaxVersion()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.InstallPackage(Provider: "Nuget", Name: "Adept.Nugetrunner", MaximumVersion: "1.0", Destination: TempFolder, Force: true, IsTesting: true);

            result.WaitForCompletion();
            DynamicPowershellResult result2 = ps.UninstallPackage(Provider: "Nuget", Name: "Adept.Nugetrunner", MaximumVersion: "1.0", Destination: TempFolder, Force: true, IsTesting: true);

            result2.WaitForCompletion();
            Assert.False(result2.IsFailing);
            Directory.Delete(TempFolder, true);
        }
Example #29
0
        public void TestGetPackageReqVersion()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.InstallPackage(Provider: "nuget", Name: "Adept.Nugetrunner", RequiredVersion: "1.0", Force: true, Destination: TempFolder, IsTesting: true);

            result.WaitForCompletion();
            DynamicPowershellResult result2 = ps.GetPackage(Provider: "Nuget", Name: "Adept.Nugetrunner", RequiredVersion: "1.0", Force: true, Destination: TempFolder, IsTesting: true);

            result2.WaitForCompletion();
            Assert.False(result2.IsFailing, "failed to get package with required version parameter.");
            Directory.Delete(TempFolder, true);
        }
Example #30
0
        public void TestInstallPackagePipeName()
        {
            var ps = NewPowerShellSession;

            Directory.CreateDirectory(TempFolder);
            DynamicPowershellResult result = ps.FindPackage(Name: "adept.nugetrunner", Provider: "Nuget", IsTesting: true);

            result.WaitForCompletion();
            DynamicPowershellResult result2 = ps.InstallPackage(result, Destination: TempFolder, Force: true, IsTesting: true);

            result2.WaitForCompletion();
            Assert.False(result2.IsFailing);

            Directory.Delete(TempFolder, true);
        }