예제 #1
0
        public void XmpReadHelperTest_GetData_usingStringExample()
        {
            var iStorage = new FakeIStorage();
            var data     = new ReadMetaXmp(iStorage).GetDataFromString(Input);

            Assert.AreEqual(52.3451333333, data.Latitude, 0.001);
            Assert.AreEqual(5.930, data.Longitude, 0.001);
            Assert.AreEqual(19, data.LocationAltitude, 0.001);

            Assert.AreEqual("caption", data.Description);
            Assert.AreEqual("keyword, keyword2", data.Tags);
            Assert.AreEqual("The object name", data.Title);

            Assert.AreEqual("Epe", data.LocationCity);
            Assert.AreEqual("Gelderland", data.LocationState);
            Assert.AreEqual("Nederland", data.LocationCountry);

            Assert.AreEqual(28d, data.FocalLength);

            Assert.AreEqual(ColorClassParser.Color.Winner, data.ColorClass);

            DateTime.TryParseExact("2018-07-18 19:44:27",
                                   "yyyy-MM-dd HH:mm:ss",
                                   CultureInfo.InvariantCulture,
                                   DateTimeStyles.None,
                                   out var dateTime);
            Assert.AreEqual(dateTime, data.DateTime);
        }
예제 #2
0
 /// <summary>
 /// Used to get from all locations
 /// </summary>
 /// <param name="iStorage"></param>
 /// <param name="appSettings"></param>
 /// <param name="memoryCache"></param>
 public ReadMeta(IStorage iStorage, AppSettings appSettings = null, IMemoryCache memoryCache = null)
 {
     _appSettings = appSettings;
     _cache       = memoryCache;
     _iStorage    = iStorage;
     _readExif    = new ReadMetaExif(_iStorage, appSettings);
     _readXmp     = new ReadMetaXmp(_iStorage, memoryCache);
 }
예제 #3
0
        public void XmpBasicRead_xPacket()
        {
            var xmpStart = "<?xpacket begin=\' \' id=\'W5M0MpCehiHzreSzNTczkc9d\'?>\n<x:xmpmeta xmlns:x=\'adobe:ns:meta/\' x:xmptk=\'Image::ExifTool 10.40\'>\n<rdf:RDF xmlns:rdf=\'http://www.w3.org/1999/02/22-rdf-syntax-ns#\'>\n</rdf:RDF>\n</x:xmpmeta>\n<?xpacket end=\'w\'?>";

            var data = new ReadMetaXmp(null).GetDataFromString(xmpStart);

            Assert.AreEqual(string.Empty, data.Tags);
        }
예제 #4
0
        public void XmpBasicRead()
        {
            var xmpStart =
                "<x:xmpmeta xmlns:x=\'adobe:ns:meta/\' x:xmptk=\'Qdraw\'>\n<rdf:RDF xmlns:rdf=\'http://www.w3.org/1999/02/22-rdf-syntax-ns#\'>\n</rdf:RDF>\n</x:xmpmeta>";
            var data = new ReadMetaXmp(null).GetDataFromString(xmpStart);

            Assert.AreEqual(string.Empty, data.Tags);
        }
예제 #5
0
        public void XmpReadHelperTest_XmpGetSidecarFile_TestIfOverwrite()
        {
            // convert string to stream
            byte[] xmpByteArray = Encoding.UTF8.GetBytes(Input);


            var fakeIStorage = new FakeIStorage(new List <string> {
                "/"
            }, new List <string> {
                "/test.arw", "/test.xmp"
            }, new List <byte[]> {
                null, xmpByteArray
            });
            var fileIndexItem = new FileIndexItem
            {
                ParentDirectory  = "/",
                FileName         = "test.arw",
                Description      = "something different",
                LocationAltitude = 3000,
                Latitude         = 3000,
                Longitude        = 3000,
                LocationCity     = "Essen",
                LocationState    = "Flevoland",
                LocationCountry  = "Germany",
                DateTime         = new DateTime(1990, 01, 01, 01, 00, 00)
            };

            var data = new ReadMetaXmp(fakeIStorage).XmpGetSidecarFile(fileIndexItem);


            Assert.AreEqual(52.3451333333, data.Latitude, 0.001);
            Assert.AreEqual(5.930, data.Longitude, 0.001);
            Assert.AreEqual(19, data.LocationAltitude, 0.001);

            Assert.AreEqual("caption", data.Description);
            Assert.AreEqual("keyword, keyword2", data.Tags);
            Assert.AreEqual("The object name", data.Title);

            Assert.AreEqual("Epe", data.LocationCity);
            Assert.AreEqual("Gelderland", data.LocationState);
            Assert.AreEqual("Nederland", data.LocationCountry);

            Assert.AreEqual(ColorClassParser.Color.Winner, data.ColorClass);

            DateTime.TryParseExact("2018-07-18 19:44:27",
                                   "yyyy-MM-dd HH:mm:ss",
                                   CultureInfo.InvariantCulture,
                                   DateTimeStyles.None,
                                   out var dateTime);
            Assert.AreEqual(dateTime, data.DateTime);
        }