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); }
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"); } } }
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); }
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."); }
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."); }
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."); }
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."); }
//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."); }
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."); }
public void TestGetPackageProvider() { var ps = NewPowerShellSession; DynamicPowershellResult result = ps.GetPackageProvider(IsTesting: true); result.WaitForCompletion(); Assert.False(result.IsFailing, "Failed to get package provider."); }
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."); }
public void TestFindPackageEmptyStringName() { var ps = NewPowerShellSession; DynamicPowershellResult result = ps.FindPackage(Provider: "Nuget", Name: "", IsTesting: true); result.WaitForCompletion(); Assert.False(result.IsFailing); }
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 }
private IEnumerable <PSModuleInfo> ModulesFromResult(DynamicPowershellResult result) { if (result.Success && result.Value != null) { foreach (var module in result.OfType <PSModuleInfo>()) { yield return(module); } } }
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); }
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); }
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); }
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); }
//[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); }
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); }
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."); }
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); } }
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); }
// [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); }
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); }
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); }
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); }
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); }
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); }