Пример #1
0
        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");
        }
Пример #2
0
            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));
                }
            }
Пример #3
0
        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");
        }
Пример #4
0
 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));
 }