public void ReadFilesFromArchive_NumberOfFilesIs1_SearchingForPackageXmlFile() { // Arrange var sut = new PackageExtraction(); // Act var result = sut.ReadFilesFromArchive(GetTestPackagePath(PackageFileName), new[] { "Package.xml" }); // Assert Assert.AreEqual(1, result.Count()); }
public void FindMissingFiles_1_UnknownFile() { // Arrange var sut = new PackageExtraction(); // Act var result = sut.FindMissingFiles(GetTestPackagePath(PackageFileName), new[] { "DoesNotExists.XYZ" }); // Assert Assert.AreEqual(1, result.Count()); }
public static void SetMinimumUmbracoVersion(this WikiFile mediaFile) { var fileType = (FileType)Enum.Parse(typeof(FileType), mediaFile.FileType); if (fileType != FileType.package) { return; } System.Version minimumUmbracoVersion = null; var extractor = new PackageExtraction(); var filePath = IOHelper.MapPath(mediaFile.Path); var packageXml = extractor.ReadTextFileFromArchive(filePath, Umbraco.Core.Constants.Packaging.PackageXmlFileName); if (string.IsNullOrWhiteSpace(packageXml)) { return; } var packageXmlDoc = XDocument.Parse(packageXml); // The XPath query will detect if the 'requirements' element has the attribute that we're looking for, // and if the child elements also exist. [LK:2016-06-12@CGRT16] var requirements = packageXmlDoc.XPathSelectElement("/umbPackage/info/package/requirements"); if (requirements == null) { return; } if (requirements.Attribute("type") == null || requirements.Attribute("type").Value.ToLowerInvariant() != "strict") { return; } if (requirements.Element("major") == null || requirements.Element("minor") == null || requirements.Element("patch") == null) { return; } var major = requirements.Element("major").Value; var minor = requirements.Element("minor").Value; var patch = requirements.Element("patch").Value; System.Version.TryParse(string.Format("{0}.{1}.{2}", major, minor, patch), out minimumUmbracoVersion); if (minimumUmbracoVersion != default(System.Version)) { mediaFile.MinimumVersionStrict = minimumUmbracoVersion.ToString(3); } }