private void PrintScript(RegistryPackage script, RegistryPackageVersion version, IReadOnlyCollection <Script> localFiles) { Renderer.Write(script.Name, ConsoleColor.Green); Renderer.Write(" "); Renderer.Write($"v{version.Version}", ConsoleColor.Gray); var nonInstalledLocalFiles = localFiles.Where(l => !l.FullPath.StartsWith(Config.VirtAMate.PackagesFolder)).ToList(); if (nonInstalledLocalFiles.Count > 0) { var filesSummary = nonInstalledLocalFiles.Select(l => l.FullPath).Select(Controller.GetDisplayPath).OrderBy(p => p.Length).ToList(); Renderer.Write(" "); if (filesSummary.Count == 1) { Renderer.Write($"\"{filesSummary.FirstOrDefault()}\"", ConsoleColor.DarkGray); } else { Renderer.Write($"\"{filesSummary.FirstOrDefault()}\" and {filesSummary.Count - 1} others...", ConsoleColor.DarkGray); } } Renderer.Write(" "); Renderer.Write($"referenced by {Pluralize(localFiles.Sum(l => l.Scenes?.Count() ?? 0), "scene", "scenes")}", ConsoleColor.DarkCyan); var latestVersion = script.GetLatestVersion(); if (version != latestVersion) { Renderer.Write($" [update available: v{latestVersion.Version}]", ConsoleColor.Yellow); } else { Renderer.Write($" [up to date]", ConsoleColor.Cyan); } Renderer.WriteLine(); }
public void Deconstruct(out Registry registry, out RegistryPackage package, out RegistryPackageVersion version, out RegistryFile file) { registry = Registry; package = Package; version = Version; file = File; }
public static void RegistryPackage(RegistryPackage item, string id, string name, string description) { Assert.AreEqual(id ?? "", item.Id ?? ""); Assert.AreEqual(name ?? "", (item.Name != null ? item.Name.GetValue() : null) ?? ""); Assert.AreEqual(name ?? "", (item.Name != null ? item.Name.GetValue("en-US") : null) ?? ""); Assert.AreEqual(description ?? "", (item.Description != null ? item.Description.GetValue() : null) ?? ""); Assert.AreEqual(description ?? "", (item.Description != null ? item.Description.GetValue("en-US") : null) ?? ""); }
public void CanGetLatestVersion() { RegistryPackageVersion version = TestFactory.RegVer("1.0.0"); RegistryPackage package = TestFactory.RegScript("script1", version); var registry = TestFactory.Reg(package); var success = registry.TryGetPackageVersion(RegistryPackageType.Scripts, "script1", null, out var context); Assert.That(success, Is.True); Assert.That(context.Registry, Is.SameAs(registry)); Assert.That(context.Package, Is.SameAs(package)); Assert.That(context.Version, Is.SameAs(version)); }
private void PrintScript(RegistryPackage script, RegistryPackageVersion version, IReadOnlyCollection <LocalScriptFile> localFiles) { Renderer.Write(script.Name, ConsoleColor.Green); Renderer.Write(" "); Renderer.Write($"v{version.Version}", ConsoleColor.Gray); if (localFiles.Count > 0) { var filesSummary = localFiles.Select(l => l.FullPath).Select(Path.GetFileName).OrderBy(p => p.Length).ToList(); Renderer.Write(" "); if (filesSummary.Count == 1) { Renderer.Write($"\"{filesSummary.FirstOrDefault()}\"", ConsoleColor.DarkGray); } else { Renderer.Write($"\"{filesSummary.FirstOrDefault()}\" and {filesSummary.Count - 1} others...", ConsoleColor.DarkGray); } } Renderer.Write(" "); Renderer.Write($"referenced by {Pluralize(localFiles.Sum(l => l.Scenes?.Count() ?? 0), "scene", "scenes")}", ConsoleColor.DarkCyan); var latestVersion = script.GetLatestVersion(); if (version != latestVersion) { Renderer.Write($" [update available: v{latestVersion.Version}]", ConsoleColor.Yellow); } else { Renderer.Write($" [up to date]", ConsoleColor.Cyan); } var errors = localFiles.Max(l => l.Status); if (errors == LocalFileErrorLevel.Warning) { Renderer.Write(" [warnings]", ConsoleColor.Yellow); } else if (errors >= LocalFileErrorLevel.Error) { Renderer.Write(" [errors]", ConsoleColor.Red); } Renderer.WriteLine(); }
private bool MatchesQuery(RegistryPackage package, string query) { if ((package.Name?.IndexOf(query, StringComparison.InvariantCultureIgnoreCase) ?? -1) > -1) { return(true); } if ((package.Author?.IndexOf(query, StringComparison.InvariantCultureIgnoreCase) ?? -1) > -1) { return(true); } if ((package.Description?.IndexOf(query, StringComparison.InvariantCultureIgnoreCase) ?? -1) > -1) { return(true); } if (package.Tags?.Any(tag => tag.IndexOf(query, StringComparison.InvariantCultureIgnoreCase) > -1) ?? false) { return(true); } return(false); }
public void CanSort() { var script = new RegistryPackage { Versions = new SortedSet <RegistryPackageVersion>(new[] { new RegistryPackageVersion { Version = "1.0.0" }, new RegistryPackageVersion { Version = "2.0.5" }, new RegistryPackageVersion { Version = "2.0.4" }, }) }; Assert.That(script.Versions.Select(v => v.Version.ToString()).ToArray(), Is.EqualTo(new[] { "2.0.5", "2.0.4", "1.0.0" })); }
public void CanGetLatestVersion() { var script = new RegistryPackage { Versions = new SortedSet <RegistryPackageVersion>(new[] { new RegistryPackageVersion { Version = "1.0.0" }, new RegistryPackageVersion { Version = "2.0.5" }, new RegistryPackageVersion { Version = "2.0.4" }, }) }; Assert.That(script.GetLatestVersion().Version.ToString(), Is.EqualTo("2.0.5")); }
public void DoesNotMatchByFilenameWhenMatchedByHash() { var saves = ResultFactory.SavesMap() .WithScript(new Script($"{_vam}1.cs", "1"), out var local1) .Build(); RegistryFile file = ResultFactory.RegFile("1.cs", "1"); RegistryPackageVersion version = ResultFactory.RegVer("1.0.0", file); RegistryPackage script = ResultFactory.RegScript("my-script", version); var registry = ResultFactory.Reg(script); var result = _handler.Match(saves, registry); PartyAssertions.AreDeepEqual(new RegistrySavesMatches { HashMatches = new[] { new RegistrySavesMatch { Script = script, Version = version, File = file, Local = local1 } }, FilenameMatches = new RegistrySavesMatch[0], NoMatches = new Script[0] }, result); }
public void Should_Build_Folder_Test01() { var folder = new Folder { AvailabilityStatus = StatusType.Approved, Codes = new List <FolderCode> { new FolderCode { Value = "42", DisplayName = "Blue Folder", CodeSystemId = "1.2.3.4.5.6.7" }, new FolderCode { Value = "99", DisplayName = "Secured Folder", CodeSystemId = "7.6.5.4.3.2.1" } }, Comments = "This folder contains all XdsKit documents", EntryUuid = "Folder01", HomeCommunityId = "urn:oid:1.2.3.4.5.6.7", LastUpdateTime = new DateTimeOffset(2015, 9, 1, 8, 55, 00, TimeSpan.Zero), LimitedMetadata = true, PatientId = new XdsIdentifier { Id = "MRN123456789", UniversalId = "8" }, Title = "XdsKit Documents", UniqueId = "1.2.3.4.5.6.7" }; RegistryPackage package = folder.ToRegistryObject(); package.ToXml() .AssertByLine(XDocument.Parse(Resource.Get("Resources.Xdsb.Folder_Test01.xml"))); }
public void TestBackupRemove() { InstallContext.Instance.RootLocation = Path.Combine("c:", "choco"); string filePath = Path.Combine("c:", "choco", "lib", "somelib", "license.txt"); string fileConfPath = Path.Combine("c:", "choco", "lib", "somelib", "myconf.xml"); string filePath2 = Path.Combine("c:", "choco", "lib", "somelib", "license2.txt"); RegistryPackage package = new RegistryPackage(); package.Id = "Bob"; package.Version = new SemanticVersion(1, 2, 3, 4); var packageInfo = new ChocolateyPackageInformation(package); var packageFile = new PackageFile { Path = filePath, Checksum = "1234" }; var packageFiles = new PackageFiles() { Files = new List <PackageFile> { packageFile } }; packageInfo.FilesSnapshot = packageFiles; var fileSystemFiles = new [] { filePath }; var config = new ChocolateyConfiguration(); fileSystem.Setup(x => x.get_files(It.IsAny <string>(), It.IsAny <string>(), SearchOption.AllDirectories)).Returns(fileSystemFiles); filesService.Setup(x => x.capture_package_files(It.IsAny <string>(), config)).Returns(packageFiles); using (new LogScope("should_ignore_an_unchanged_file")) { service.backup_changed_files(filePath, config, packageInfo); } var updatedPackageFiles = new PackageFiles() { Files = new List <PackageFile> { new PackageFile { Path = filePath, Checksum = "4321" } } }; using (new LogScope("should_backup_a_changed_file")) { filesService.Setup(x => x.capture_package_files(It.IsAny <string>(), config)).Returns(updatedPackageFiles); service.backup_changed_files(filePath, config, packageInfo); } using (new LogScope("if_snapshot_not_available_should_backup_files_in_folder")) //new case { var confFiles = new[] { fileConfPath }; fileSystem.Setup(x => x.get_files(It.IsAny <string>(), It.IsAny <string[]>(), SearchOption.AllDirectories)).Returns(confFiles); packageInfo.FilesSnapshot = null; service.backup_changed_files(filePath, config, packageInfo); } using (new LogScope("should_do_nothing_if_the_directory_no_longer_exists")) { fileSystem.Setup(x => x.directory_exists(It.IsAny <string>())).Returns(false); filesService.Setup(x => x.get_package_file(It.IsAny <string>())).Returns(packageFile); service.remove_installation_files(package, packageInfo); } using (new LogScope("should_remove_an_unchanged_file")) { fileSystem.Setup(x => x.directory_exists(It.IsAny <string>())).Returns(true); fileSystem.Setup(x => x.get_files(It.IsAny <string>(), It.IsAny <string>(), SearchOption.AllDirectories)).Returns(fileSystemFiles); fileSystem.Setup(x => x.file_exists(filePath)).Returns(true); service.remove_installation_files(package, packageInfo); } using (new LogScope("should_not_delete_a_changed_file")) { filesService.Setup(x => x.get_package_file(It.IsAny <string>())).Returns(updatedPackageFiles.Files[0]); service.remove_installation_files(package, packageInfo); } using (new LogScope("should_not_delete_an_unfound_file")) { var packageFileNotInOriginal = new PackageFile { Path = filePath2, Checksum = "4321" }; filesService.Setup(x => x.get_package_file(It.IsAny <string>())).Returns(packageFileNotInOriginal); service.remove_installation_files(package, packageInfo); } using (new LogScope("generated_package_should_be_in_current_directory")) { fileSystem.Setup(x => x.get_current_directory()).Returns("c:/choco"); service.pack_noop(config); } using (new LogScope("generated_package_should_be_in_specified_directory")) { config.OutputDirectory = "c:/packages"; service.pack_noop(config); } }
public string Serialize(RegistryPackage registry) { return(SerializeInternal(registry)); }
public void Deconstruct(out Registry registry, out RegistryPackage package, out RegistryPackageVersion version) { registry = Registry; package = Package; version = Version; }
public RegistryPackageVersionContext(Registry registry, RegistryPackage package, RegistryPackageVersion version) { Registry = registry ?? throw new System.ArgumentNullException(nameof(registry)); Package = package ?? throw new System.ArgumentNullException(nameof(package)); Version = version ?? throw new System.ArgumentNullException(nameof(version)); }
public RegistryPackageFileContext(Registry registry, RegistryPackage package, RegistryPackageVersion version, RegistryFile file) : base(registry, package, version) { File = file ?? throw new System.ArgumentNullException(nameof(file)); }