public void SaveTest() { VersionRequirement vr; XmlDocument xdoc; XmlNode node; String MinVersion, MaxVersion, Version; // // Prepare the test. // xdoc = new XmlDocument(); vr = new VersionRequirement(); MinVersion = "1.2.3"; vr.MinVersion = new PackageVersion("1.2.3"); MaxVersion = "4.5.6"; vr.MaxVersion = new PackageVersion("4.5.6"); Version = "7.8.9"; vr.Version = new PackageVersion("7.8.9"); // // Run the test. // node = vr.Save(xdoc, false); // // Verify the test. // Assert.AreEqual(MinVersion, node.Attributes["MinVersion"].Value); Assert.AreEqual(MaxVersion, node.Attributes["MaxVersion"].Value); Assert.AreEqual(Version, node.Attributes["Version"].Value); }
public void XmlConstructorTest() { VersionRequirement vr; XmlDocument xdoc; XmlNode node; String MinVersion, MaxVersion, Version; // // Prepare the test. // xdoc = new XmlDocument(); node = xdoc.CreateElement("VersionRequirement"); MinVersion = "1.2.3"; AddXmlAttribute(node, "MinVersion", MinVersion); MaxVersion = "4.5.6"; AddXmlAttribute(node, "MaxVersion", MaxVersion); Version = "7.8.9"; AddXmlAttribute(node, "Version", Version); // // Run the test. // vr = new VersionRequirement(node); // // Verify the test. // Assert.AreEqual(MinVersion, vr.MinVersion.ToString()); Assert.AreEqual(MaxVersion, vr.MaxVersion.ToString()); Assert.AreEqual(Version, vr.Version.ToString()); }
public void VersionRequirement_Compare_Null() { Assert.Throws <ArgumentNullException>(() => VersionRequirement.Compare(null, null, CompareType.EqualTo)); Version valid = Version.Parse("1.0"); Assert.Throws <ArgumentNullException>(() => VersionRequirement.Compare(valid, null, CompareType.EqualTo)); Assert.Throws <ArgumentNullException>(() => VersionRequirement.Compare(null, valid, CompareType.EqualTo)); }
/// <inheritdoc /> public bool TryGetMeta(string text, ref PackageMeta packmeta, out VersionRequirement requiredVersion, CompletePackageReference packref) { return(this.TryGetCommonHjsonMeta( text, @"\<\#", @"\#\>", ref packmeta, out requiredVersion, packref, packref.RepositoryUrl)); }
public void JsonParser_ParseJSON_Dependency_Normal() { var info = LoadJSONFile("dependencynormal"); Assert.AreEqual(info.Dependencies.Length, 2); Assert.AreEqual(info.Dependencies[0].ID, "test2"); var expected = new VersionRequirement(Version.Parse("1.0"), CompareType.GreaterThan); Assert.AreEqual(info.Dependencies[0].VersionRequirement, expected); Assert.AreEqual(info.Dependencies[1].ID, "test4"); expected = new VersionRequirement(Version.Parse("1.3.2"), CompareType.GreaterThan | CompareType.EqualTo); Assert.AreEqual(info.Dependencies[1].VersionRequirement, expected); }
/// <summary> /// Try to get the meta comment text of a script /// </summary> /// <param name="engine"></param> /// <param name="text">text of the entire package</param> /// <param name="commentStartRegexPattern">a regex pattern for comment start</param> /// <param name="commentEndRegexPattern">a regex pattern for comment end</param> /// <param name="metaText">output meta text if valid</param> /// <param name="requiredVersion">output version requirement if valid</param> /// <param name="packref">optional pack reference for logging to know which pack we're talking about.</param> /// <returns>True if the meta comment was found successfully</returns> public static bool TryGetScriptMultilineMetaComment( this IScriptEngine engine, string text, string commentStartRegexPattern, string commentEndRegexPattern, out string metaText, out VersionRequirement requiredVersion, CompletePackageReference packref = null) { metaText = ""; requiredVersion = new VersionRequirement(); var matches = text.MatchGroup( $@"{commentStartRegexPattern}\s+uppm\s+(?<uppmversion>[\d\.]+)\s+(?<packmeta>\{{.*\}})\s+{commentEndRegexPattern}", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase | RegexOptions.Singleline); if (matches == null || matches.Count == 0 || matches["uppmversion"]?.Length <= 0 || matches["packmeta"]?.Length <= 0 ) { engine.Log.Error("{PackRef} doesn't contain valid metadata.", packref?.ToString() ?? "Script"); return(false); } if (UppmVersion.TryParse(matches["uppmversion"].Value, out var minuppmversion, UppmVersion.Inference.Zero)) { requiredVersion.MinimalVersion = minuppmversion; requiredVersion.Valid = minuppmversion <= Uppm.CoreVersion; metaText = matches["packmeta"].Value; if (!requiredVersion.Valid) { Log.Error( "{PackRef} requires at least uppm {$RequiredMinVersion}. " + "It's incompatible with Current version of uppm ({$UppmVersion})", packref?.ToString() ?? "Script", requiredVersion.MinimalVersion, Uppm.CoreVersion); return(false); } return(true); } Log.Error("{PackRef} doesn't contain valid metadata.", packref?.ToString() ?? "Script"); return(false); }
internal static KotlinVersionRequirement FromProtobuf(VersionRequirement vr, JvmNameResolver resolver) { if (vr is null) { return(null); } return(new KotlinVersionRequirement { Version = vr.Version, VersionFull = vr.VersionFull, Level = (KotlinVersionLevel)vr.level, ErrorCode = vr.ErrorCode, Message = vr.Message, VersionKind = (KotlinVersionKind)vr.version_kind }); }
public void BaseConstructorTest() { VersionRequirement vr; // // No preparation needed. // // // Run the test. // vr = new VersionRequirement(); // // Verify the test. // Assert.AreEqual("VersionRequirement", vr.NodeName); }
public void ValidateVersion_EqualToMinimumTest() { VersionRequirement vr; PackageVersion pv; // // Prepare the test. // vr = new VersionRequirement(); vr.MinVersion = new PackageVersion("1.0.0"); pv = new PackageVersion("1.0.0"); // // Run the test. // vr.ValidateVersion(pv, "x"); // // Validation is via exception or not. // }
public void ValidateVersion_GreaterThanVersionTest() { VersionRequirement vr; PackageVersion pv; // // Prepare the test. // vr = new VersionRequirement(); vr.Version = new PackageVersion("1.0.0"); pv = new PackageVersion("1.9.5"); // // Run the test. // vr.ValidateVersion(pv, "x"); // // Validation is via exception or not. // }
/// <summary> /// Common implementation for <see cref="IScriptEngine.TryGetMeta"/> in case /// package defines metadata as HJSON in a multiline comment /// </summary> /// <param name="engine"></param> /// <param name="text">text of the entire package</param> /// <param name="commentStartRegexPattern">a regex pattern for comment start</param> /// <param name="commentEndRegexPattern">a regex pattern for comment end</param> /// <param name="packMeta">reference to a <see cref="PackageMeta"/>. /// if reference is null a new one will be created and assigned to it</param> /// <param name="requiredVersion">output version requirement if valid</param> /// <param name="packref">optional pack reference for logging to know which pack we're talking about.</param> /// <param name="parentRepo">Optionally a parent repository can be specified. This is used mostly for keeping dependency contexts correct.</param> /// <returns>True if package metadata was parsed successfully</returns> public static bool TryGetCommonHjsonMeta( this IScriptEngine engine, string text, string commentStartRegexPattern, string commentEndRegexPattern, ref PackageMeta packMeta, out VersionRequirement requiredVersion, CompletePackageReference packref = null, string parentRepo = "") { if (!engine.TryGetScriptMultilineMetaComment( text, commentStartRegexPattern, commentEndRegexPattern, out var metatext, out requiredVersion, packref)) { return(false); } packMeta = packMeta ?? new PackageMeta(); packMeta.Text = text; packMeta.RequiredUppmVersion = requiredVersion; if (!engine.TryGetHjsonScriptMultilineMeta( metatext, ref packMeta, packref, parentRepo)) { return(false); } if (engine.TryGetScriptText(text, out var scripttext, parentRepo)) { packMeta.ScriptText = scripttext; return(true); }
internal void OnDeserialize(StreamingContext context) { VersionRequirement = VersionRequirement.Parse(version); }
public void VersionRequirement_Parse_NormalInputs(CompareType type, string comparerString) { var expected = new VersionRequirement(Version.Parse("1.0"), type); Assert.AreEqual(expected, VersionRequirement.Parse($"{comparerString}1.0")); }
public void VersionRequirement_Compare_SatisfiedBy_Null_Input() { var validRequirement = new VersionRequirement(Version.Parse("1.0"), CompareType.EqualTo); Assert.Throws <ArgumentNullException>(() => validRequirement.SatisfiedWith(null)); }
public Dependency(string iD, string version) { ID = iD; VersionRequirement = VersionRequirement.Parse(version); }
public void VersionRequirement_Compare_Invalid_Compare(CompareType type) { var version = Version.Parse("1.0"); Assert.Throws <ArgumentException>(() => VersionRequirement.Compare(version, version, type)); }
public void VersionRequirement_Compare_Valid_Inputs(string a, string b, CompareType type, bool expected) { Assert.AreEqual(VersionRequirement.Compare(Version.Parse(a), Version.Parse(b), type), expected); }
public void VersionRequirement_Compare_SatisfiedBy_NormalInputs(string testedVersion, CompareType type, bool expected) { var requirement = new VersionRequirement(Version.Parse("1.0"), type); Assert.AreEqual(requirement.SatisfiedWith(Version.Parse(testedVersion)), expected); }
public void VersionRequirement_Parse_Empty() { Assert.Throws <ArgumentException>(() => VersionRequirement.Parse("")); }
public void VersionRequirement_Parse_Null() { Assert.Throws <ArgumentNullException>(() => VersionRequirement.Parse(null)); }
public void VersionRequirement_Parse_NoComparer() { var expected = new VersionRequirement(Version.Parse("1.0"), CompareType.EqualTo); Assert.AreEqual(expected, VersionRequirement.Parse("1.0")); }
public void XmlConstructorTest() { PackageRecommendation rec; PackageRequirement req; PackageChangelog changelog; VersionRequirement arena; PackageInfo info; XmlDocument xdoc; XmlNode infoNode; String distributor, packagename, version, synopsis, description; // // Prepare the test. // xdoc = new XmlDocument(); infoNode = xdoc.CreateElement("Info"); distributor = "RefrshCache"; AddSimpleXmlNode(infoNode, "Distributor", distributor); packagename = "RC.TestPackage"; AddSimpleXmlNode(infoNode, "PackageName", packagename); version = "3.2.8"; AddSimpleXmlNode(infoNode, "Version", version); synopsis = "This is a short synopsis message."; AddSimpleXmlNode(infoNode, "Synopsis", synopsis); description = "This is a longer description."; AddSimpleXmlNode(infoNode, "Description", description); arena = new VersionRequirement(); arena.Version = new PackageVersion("1.2.3"); arena.MinVersion = new PackageVersion("4.5.6"); arena.MaxVersion = new PackageVersion("7.8.9"); infoNode.AppendChild(arena.Save(xdoc, false).CopyAndRename("ArenaVersion")); req = new PackageRequirement(); req.Name = "RC.Package1"; infoNode.AppendChild(req.Save(xdoc, false)); rec = new PackageRecommendation(); rec.Name = "RC.Package2"; rec.Description = "You should install this."; infoNode.AppendChild(rec.Save(xdoc, false)); changelog = new PackageChangelog(); changelog.Version = new PackageVersion("8.9.982"); changelog.Description = "I made some changes."; infoNode.AppendChild(changelog.Save(xdoc, false)); // // Run the test. // info = new PackageInfo(infoNode); // // Verify the test. // Assert.AreEqual(distributor, info.Distributor); Assert.AreEqual(packagename, info.PackageName); Assert.AreEqual(version, info.Version.ToString()); Assert.AreEqual(synopsis, info.Synopsis); Assert.AreEqual(description, info.Description); Assert.AreEqual(arena.MinVersion.ToString(), info.Arena.MinVersion.ToString()); Assert.AreEqual(arena.MaxVersion.ToString(), info.Arena.MaxVersion.ToString()); Assert.AreEqual(arena.Version.ToString(), info.Arena.Version.ToString()); Assert.AreEqual(1, info.Requires.Count); Assert.AreEqual(1, info.Recommends.Count); Assert.AreEqual(1, info.Changelog.Count); }