public void LoadingPackageDoesNotAffectLoadedSearchEntries() { var loader = new PackageLoader(PackagesDirectory); var libraryLoader = new ExtensionLibraryLoader(CurrentDynamoModel); loader.PackagesLoaded += libraryLoader.LoadPackages; loader.RequestLoadNodeLibrary += (libraryLoader as ExtensionLibraryLoader).LoadLibraryAndSuppressZTSearchImport; loader.LoadAll(new LoadPackageParams { Preferences = CurrentDynamoModel.PreferenceSettings, PathManager = CurrentDynamoModel.PathManager }); // There are 15 packages in "GitHub\Dynamo\test\pkgs" Assert.AreEqual(15, loader.LocalPackages.Count()); // Simulate loading new package from PM string packageDirectory = Path.Combine(TestDirectory, @"core\packageDependencyTests\ZTTestPackage"); var pkg = loader.ScanPackageDirectory(packageDirectory); loader.LoadPackages(new List <Package> { pkg }); // Assert that node belonging to new package is imported var node = GetNodeInstance("ZTTestPackage.RRTestClass.RRTestClass"); Assert.IsNotNull(node); // Check that node belonging to one of the preloaded packages exists and is unique var entries = CurrentDynamoModel.SearchModel.SearchEntries.ToList(); Assert.IsTrue(entries.Count(x => x.FullName == "AnotherPackage.AnotherPackage.AnotherPackage.HelloAnotherWorld") == 1); }
public void LoadPackagesReturnsAllValidPackagesInValidDirectory() { var loader = new PackageLoader(ViewModel.Model); loader.LoadPackages(); Assert.AreEqual(1, loader.LocalPackages.Count); }
public void ScanPackageDirectoryWithCheckingCertificatesEnabledWillLoadPackageWithValidCertificate() { var loader = new PackageLoader(new[] { PackagesDirectory }, new[] { PackagesDirectorySigned }); var libraryLoader = new ExtensionLibraryLoader(CurrentDynamoModel); loader.PackagesLoaded += libraryLoader.LoadPackages; loader.RequestLoadNodeLibrary += libraryLoader.LoadNodeLibrary; var pkgDir = Path.Combine(PackagesDirectorySigned, "Signed Package"); var pkg = loader.ScanPackageDirectory(pkgDir, true); // Assert that ScanPackageDirectory returns a package Assert.IsNotNull(pkg); Assert.IsTrue(pkg.RequiresSignedEntryPoints); loader.LoadPackages(new List <Package> { pkg }); // Verify that package resolved successfully var libs = CurrentDynamoModel.LibraryServices.ImportedLibraries.ToList(); Assert.IsTrue(libs.Contains(Path.Combine(PackagesDirectorySigned, "Signed Package", "bin", "SignedPackage.dll"))); // Verify that the package are imported successfully var entries = CurrentDynamoModel.SearchModel.SearchEntries.ToList(); Assert.IsTrue(entries.Any(x => x.FullName == "SignedPackage.SignedPackage.SignedPackage.Hello")); }
public static void Main(string[] args) { DateTime startTime = DateTime.UtcNow; CommandLineUtils.PrintInfoMessage("Plugin is running... "); projectPath = args[0]; DirectoryInfo projectDir = new DirectoryInfo(projectPath); CommandLineUtils.PrintInfoMessage($"Project Name: {projectDir.Name}"); string nugetFile = Path.Combine(projectPath, packagesFile); if (TryGetPolicy(out ProjectPolicy policy)) { if (File.Exists(nugetFile)) { CommandLineUtils.PrintInfoMessage("Finding project dependencies... "); List <NuGetPackage> packagesFound = PackageLoader.LoadPackages(nugetFile) .Where(package => package.Id != pluginId) .ToList(); CommandLineUtils.PrintSuccessMessage("Finding project dependencies DONE"); CommandLineUtils.PrintInfoMessage("Searching for dependencies licenses and vulnerabilities... "); List <Dependency> dependenciesEvaluated = ValidateProjectDependencies(packagesFound, policy).Result; CommandLineUtils.PrintSuccessMessage("Searching for dependencies licenses and vulnerabilities DONE"); string report = GenerateReport(dependenciesEvaluated, policy); CommandLineUtils.PrintSuccessMessage("Produced report locally."); StoreReport(report); double seconds = (DateTime.UtcNow - startTime).TotalSeconds; CommandLineUtils.PrintInfoMessage("Plugin execution time: " + seconds); } else { CommandLineUtils.PrintErrorMessage($"Packages.config file not found in project {projectDir.Name}"); } } }
public void LoadPackagesReturnsNoPackagesForInvalidDirectory() { var pkgDir = Path.Combine(PackagesDirectory, "No directory"); var loader = new PackageLoader(ViewModel.Model, pkgDir); loader.LoadPackages(); Assert.AreEqual(0, loader.LocalPackages.Count); }
public void LocalizedPackageLocalizedCorrectly() { var esculture = CultureInfo.CreateSpecificCulture("es-ES"); // Save current culture - usually "en-US" var currentCulture = Thread.CurrentThread.CurrentCulture; var currentUICulture = Thread.CurrentThread.CurrentUICulture; // Set "es-ES" Thread.CurrentThread.CurrentCulture = esculture; Thread.CurrentThread.CurrentUICulture = esculture; var loader = new PackageLoader(new[] { PackagesDirectory }, new[] { string.Empty }); var libraryLoader = new ExtensionLibraryLoader(CurrentDynamoModel); loader.PackagesLoaded += libraryLoader.LoadPackages; loader.RequestLoadNodeLibrary += libraryLoader.LoadNodeLibrary; var pkgDir = Path.Combine(PackagesDirectory, "Dynamo Samples"); var pkg = loader.ScanPackageDirectory(pkgDir, false); // Assert that ScanPackageDirectory returns a package Assert.IsNotNull(pkg); loader.LoadPackages(new List <Package> { pkg }); // Verify that the package are imported successfully var entries = CurrentDynamoModel.SearchModel.SearchEntries.ToList(); var nse = entries.Where(x => x.FullName == "SampleLibraryUI.Examples.LocalizedNode").FirstOrDefault(); Assert.IsNotNull(nse); //verify that the node has the correctly localized description Assert.AreEqual("Un nodo de interfaz de usuario de muestra que muestra una interfaz de usuario personalizada." , nse.Description); var node = nse.CreateNode(); Assert.AreEqual("Un nodo de interfaz de usuario de muestra que muestra una interfaz de usuario personalizada." , nse.Description); // Restore "en-US" Thread.CurrentThread.CurrentCulture = currentCulture; Thread.CurrentThread.CurrentUICulture = currentUICulture; }
public static void Main(string[] args) { projectPath = (args.Length == 0) ? "./" : args[0]; if (Directory.GetFiles(projectPath, "*.csproj").Length == 0) { Console.WriteLine(args.Length == 0 ? "Project not found in current directory" : "Project not found in the directory specified"); return; } DateTime startTime = DateTime.UtcNow; CommandLineUtils.PrintInfoMessage("Plugin is running... "); string projectName = new DirectoryInfo(projectPath).Name; RetrieveNugetProperties(string.Format(nugetPropsFile, projectPath, projectName)); CommandLineUtils.PrintInfoMessage($"Project Name: {projectName}"); string projectFilePath = Path.Combine(projectPath, string.Format(projectFile, projectName)); if (TryGetPolicy(out ProjectPolicy policy)) { if (File.Exists(projectFilePath)) { CommandLineUtils.PrintInfoMessage("Finding project dependencies... "); List <NuGetPackage> packagesFound = PackageLoader.LoadPackages(projectFilePath, projectAssetsPath) .Distinct() .ToList(); CommandLineUtils.PrintSuccessMessage("Finding project dependencies DONE"); CommandLineUtils.PrintInfoMessage("Searching for dependencies licenses and vulnerabilities... "); List <Dependency> dependenciesEvaluated = ValidateProjectDependencies(packagesFound, policy).Result; CommandLineUtils.PrintSuccessMessage("Searching for dependencies licenses and vulnerabilities DONE"); string report = GenerateReport(dependenciesEvaluated, policy); CommandLineUtils.PrintSuccessMessage("Produced report locally."); StoreReport(report); double seconds = (DateTime.UtcNow - startTime).TotalSeconds; CommandLineUtils.PrintInfoMessage("Plugin execution time: " + seconds); } else { CommandLineUtils.PrintErrorMessage($"Packages.config file not found in project {projectName}"); } } }
public void GetOwnerPackageReturnsPackageForValidFunctionDefinition() { var loader = new PackageLoader(PackagesDirectory); loader.LoadPackages(); var pkg = loader.LocalPackages.FirstOrDefault(x => x.Name == "Custom Rounding"); Assert.AreEqual(3, pkg.LoadedCustomNodes.Count); foreach (var nodeInfo in pkg.LoadedCustomNodes) { var funcDef = dynSettings.CustomNodeManager.GetFunctionDefinition(nodeInfo.Guid); Assert.IsNotNull(funcDef); var foundPkg = loader.GetOwnerPackage(funcDef); Assert.IsNotNull(foundPkg); Assert.AreEqual(pkg.Name, foundPkg.Name); Assert.IsTrue(pkg.Name == foundPkg.Name); } }