Пример #1
0
        public async Task UpdateTransformations_ShouldUpdate_Description_IndexModeOn()
        {
            var storage = new FakeIStorage(
                new List <string> {
                "/"
            },
                new List <string> {
                "/test.jpg", "/test.xmp"
            },
                new List <byte[]> {
                CreateAnPng.Bytes, CreateAnXmp.Bytes
            });
            var appSettings = new AppSettings();

            var updateImportTransformations = new UpdateImportTransformations(new FakeIWebLogger(),
                                                                              new FakeExifTool(storage, appSettings), new FakeSelectorStorage(storage), appSettings);

            var query = new FakeIQuery();
            await query.AddItemAsync(new FileIndexItem("/test.jpg"){ FileHash = "test" });

            UpdateImportTransformations.QueryUpdateDelegate updateItemAsync = query.UpdateItemAsync;

            await updateImportTransformations.UpdateTransformations(updateItemAsync,
                                                                    new FileIndexItem("/test.jpg"){ Description = "test-ung" }, -1,
                                                                    true, true);

            var updatedItem = await query.GetObjectByFilePathAsync("/test.jpg");

            Assert.AreEqual("test-ung", updatedItem.Description);
        }
Пример #2
0
        public async Task UpdateTransformations_ShouldNotUpdate_IndexOff()
        {
            var storage = new FakeIStorage(
                new List <string> {
                "/"
            },
                new List <string> {
                "/test.jpg", "/test.xmp"
            },
                new List <byte[]> {
                CreateAnPng.Bytes, CreateAnXmp.Bytes
            });
            var appSettings = new AppSettings();

            var updateImportTransformations = new UpdateImportTransformations(new FakeIWebLogger(),
                                                                              new FakeExifTool(storage, appSettings), new FakeSelectorStorage(storage), appSettings);

            var query = new FakeIQuery();
            await query.AddItemAsync(new FileIndexItem("/test.jpg"){ FileHash = "test" });

            UpdateImportTransformations.QueryUpdateDelegate updateItemAsync = query.UpdateItemAsync;

            await updateImportTransformations.UpdateTransformations(updateItemAsync,
                                                                    new FileIndexItem("/test.jpg"){ ColorClass = ColorClassParser.Color.Typical }, 0,
                                                                    false, false);

            var updatedItem = await query.GetObjectByFilePathAsync("/test.jpg");

            // Are NOT equal!
            Assert.AreNotEqual(ColorClassParser.Color.Typical, updatedItem.ColorClass);
        }
Пример #3
0
        public async Task Update_Write_GPX()
        {
            var changedFileIndexItemName = new Dictionary <string, List <string> > {
                {
                    "/test.gpx", new List <string> {
                        "Tags"
                    }
                }
            };

            await _iStorageFake.WriteStreamAsync(new MemoryStream(CreateAnGpx.Bytes), "/test.gpx");

            var updateItem = new FileIndexItem("/test.gpx")
            {
                Tags   = "test",
                Status = FileIndexItem.ExifStatus.Ok
            };

            var query = new FakeIQuery();
            await query.AddItemAsync(updateItem);

            var fileIndexResultsList = new List <FileIndexItem> {
                updateItem
            };

            var readMeta = new FakeReadMetaSubPathStorage();
            var service  = new MetaUpdateService(query, _exifTool,
                                                 new FakeSelectorStorage(_iStorageFake), new FakeMetaPreflight(),
                                                 new FakeIWebLogger(), readMeta);

            await service.UpdateAsync(changedFileIndexItemName, fileIndexResultsList, updateItem, false, false, 0);

            Assert.IsTrue(_iStorageFake.ExistFile("/.starsky.test.gpx.json"));
        }
Пример #4
0
        public async Task UpdateService_Update_toDelete()
        {
            var query = new FakeIQuery();
            await query.AddItemAsync(new FileIndexItem
            {
                Status          = FileIndexItem.ExifStatus.Ok,
                Tags            = "",
                FileName        = "test_delete.jpg",
                Description     = "noChanges",
                ParentDirectory = "/delete",
                Id = 9
            });

            var item0 = query.GetObjectByFilePath("/delete/test_delete.jpg");

            item0.Tags = "!delete!";

            var changedFileIndexItemName = new Dictionary <string, List <string> >
            {
                {
                    "/delete/test_delete.jpg", new List <string>
                    {
                        nameof(FileIndexItem.Tags)
                    }
                },
            };

            var fileIndexResultsList = new List <FileIndexItem>
            {
                item0
            };

            var readMeta = new FakeReadMetaSubPathStorage();
            var service  = new MetaUpdateService(query, _exifTool,
                                                 new FakeSelectorStorage(_iStorageFake), new FakeMetaPreflight(),
                                                 new FakeIWebLogger(), readMeta);

            await service.UpdateAsync(changedFileIndexItemName, fileIndexResultsList, null, false, false, 0);

            // Deleted status is done in the Preflight stage
            Assert.AreEqual(FileIndexItem.ExifStatus.Ok, fileIndexResultsList[0].Status);

            // db
            Assert.AreEqual("!delete!", query.GetObjectByFilePath("/delete/test_delete.jpg").Tags);

            Assert.AreEqual("noChanges", query.GetObjectByFilePath("/delete/test_delete.jpg").Description);

            await query.RemoveItemAsync(item0);
        }
Пример #5
0
        public async Task UpdateRotate()
        {
            var changedFileIndexItemName = new Dictionary <string, List <string> > {
                {
                    "/test.jpg", new List <string> {
                        "orientation"
                    }
                }
            };
            await _iStorageFake.WriteStreamAsync(new MemoryStream(CreateAnImage.Bytes), "/test.jpg");

            var updateItem = new FileIndexItem("/test.jpg")
            {
                Orientation = FileIndexItem.Rotation.Horizontal,
                Status      = FileIndexItem.ExifStatus.Ok,
                FileHash    = "test"
            };

            var query = new FakeIQuery();
            await query.AddItemAsync(updateItem);

            var fileIndexResultsList = new List <FileIndexItem> {
                updateItem
            };

            var readMeta = new FakeReadMetaSubPathStorage();
            var service  = new MetaUpdateService(query, _exifTool,
                                                 new FakeSelectorStorage(_iStorageFake), new FakeMetaPreflight(),
                                                 new FakeIWebLogger(), readMeta);

            await service
            .UpdateAsync(changedFileIndexItemName, fileIndexResultsList, updateItem, false,
                         false, 1);

            // so there is something changed
            Assert.AreNotEqual("test", updateItem.FileHash);

            await _query.RemoveItemAsync(updateItem);
        }