public void ReadMetadata() { // Given IDocument[] documents; Dictionary<IDocument, IDictionary<string, object>> cloneDictionary; Setup(out documents, out cloneDictionary, Path.Combine(TestContext.CurrentContext.TestDirectory, @"Samples\Flamme.png")); System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); Xmp directoryMetadata = new Xmp() .WithMetadata("xmpRights:UsageTerms", "Copyright"); // When var returnedDocuments = directoryMetadata.Execute(new List<IDocument>(documents), Substitute.For<IExecutionContext>()).ToList(); // Make sure to materialize the result list // Then string expected = "This work is licensed under a <a rel=\"license\" href=\"http://creativecommons.org/licenses/by-sa/4.0/\">Creative Commons Attribution-ShareAlike 4.0 International License</a>."; Assert.True(cloneDictionary[documents[0]] .ContainsKey("Copyright"), "Metadata Copyright not found"); Assert.AreEqual(expected, cloneDictionary[documents[0]]["Copyright"], "Metadata Copyright Wrong Value"); }
public XmpSearchEntry(Xmp parent, bool isMandatory, string targetMetadata, string xmpPath) { _parent = parent; this.IsMandatory = isMandatory; this.MetadataKey = targetMetadata; this.XmpPath = xmpPath; string alias = Regex.Replace(XmpPath, @"^(?<ns>[^:]+):(?<name>.+)$", "${ns}"); if (!_parent._namespaceAlias.ContainsKey(alias)) { throw new ArgumentException($"Namespace alias {alias} unknown.", nameof(xmpPath)); } }
public void DontSkipMissingMandetory() { // Given IDocument[] documents; Dictionary<IDocument, IDictionary<string, object>> cloneDictionary; Setup(out documents, out cloneDictionary, @"Samples\Flamme.png", @"Samples\RomantiqueInitials.ttf"); System.Globalization.CultureInfo.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("en"); Xmp directoryMetadata = new Xmp(skipElementOnMissingMandatoryData: false) .WithMetadata("xmpRights:UsageTerms", "Copyright", true); // When var returnedDocuments = directoryMetadata.Execute(new List<IDocument>(documents), Substitute.For<IExecutionContext>()).ToList(); // Make sure to materialize the result list // Then Assert.AreEqual(2, returnedDocuments.Count, "Wrong number of returned Documents"); }
public XmpSearchEntry(Xmp parent, bool isMandatory, string targetMetadata, string xmpPath) { _parent = parent; this.IsMandatory = isMandatory; this.MetadataKey = targetMetadata; this.XmpPath = xmpPath; string alias = Regex.Replace(XmpPath, @"^(?<ns>[^:]+):(?<name>.+)$", "${ns}"); if (!_parent._namespaceAlias.ContainsKey(alias)) throw new ArgumentException($"Namespace alias {alias} unknown.", nameof(xmpPath)); }