Пример #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 AddParentFolder_ExistingFolder()
        {
            var storage    = GetStorage();
            var folderPath = "/exist2";

            var query = new FakeIQuery(new List <FileIndexItem> {
                new FileIndexItem("/exist2")
                {
                    IsDirectory = true
                }
            });

            var syncFolder = new SyncFolder(_appSettings, query, new FakeSelectorStorage(storage),
                                            new ConsoleWrapper(), new FakeIWebLogger(), new FakeMemoryCache());
            var result = await syncFolder.AddParentFolder(folderPath);

            Assert.IsNotNull(query.GetObjectByFilePathAsync(folderPath));
            Assert.AreEqual(folderPath, result.FilePath);

            // should not add duplicate content
            var allItems = await query.GetAllRecursiveAsync("/");

            Assert.AreEqual(1, allItems.Count);
            Assert.AreEqual(folderPath, allItems[0].FilePath);
            Assert.AreEqual(FileIndexItem.ExifStatus.Ok, allItems[0].Status);
        }
Пример #4
0
        public async Task AddParentFolder_NewFolders()
        {
            var storage    = GetStorage();
            var folderPath = "/should_add_root2";

            storage.CreateDirectory(folderPath);

            var query      = new FakeIQuery();
            var syncFolder = new SyncFolder(_appSettings, query, new FakeSelectorStorage(storage),
                                            new ConsoleWrapper(), new FakeIWebLogger(), new FakeMemoryCache());
            var result = await syncFolder.AddParentFolder(folderPath);

            Assert.IsNotNull(query.GetObjectByFilePathAsync("/"));
            Assert.IsNotNull(query.GetObjectByFilePathAsync(folderPath));
            Assert.AreEqual(folderPath, result.FilePath);
            Assert.AreEqual(FileIndexItem.ExifStatus.Ok, result.Status);
        }
Пример #5
0
        public async Task SingleFile_RemoveSidecarFile()
        {
            var queryContent = new List <FileIndexItem>
            {
                new FileIndexItem("/sidecar_test")
                {
                    IsDirectory = true
                },
                new FileIndexItem("/sidecar_test/test.dng")
                {
                    SidecarExtensions = "xmp"
                },
                new FileIndexItem("/sidecar_test/test.xmp"),
                new FileIndexItem("/sidecar_test2")
                {
                    IsDirectory = true
                },
                new FileIndexItem("/sidecar_test2/test.dng")
                {
                    SidecarExtensions = "xmp"
                },
                new FileIndexItem("/sidecar_test2/test.xmp")
            };
            var query  = new FakeIQuery(queryContent);
            var remove = new SyncRemove(_appSettings, query, null, null);

            var result = await remove.Remove(new List <string> {
                "/sidecar_test/test.xmp", "/sidecar_test2/test.xmp"
            });

            Assert.AreEqual(2, result.Count);

            var item = await query.GetObjectByFilePathAsync("/sidecar_test/test.dng");

            Assert.AreEqual(0, item.SidecarExtensionsList.Count);

            var item2 = await query.GetObjectByFilePathAsync("/sidecar_test2/test.dng");

            Assert.AreEqual(0, item2.SidecarExtensionsList.Count);
        }
Пример #6
0
        public async Task AddParentFolder_NotFound()
        {
            var storage    = GetStorage();
            var folderPath = "/not-found";

            var query = new FakeIQuery();

            var syncFolder = new SyncFolder(_appSettings, query, new FakeSelectorStorage(storage),
                                            new ConsoleWrapper(), new FakeIWebLogger(), new FakeMemoryCache());
            var result = await syncFolder.AddParentFolder(folderPath);

            Assert.IsNotNull(query.GetObjectByFilePathAsync(folderPath));
            Assert.AreEqual(folderPath, result.FilePath);
            Assert.AreEqual(FileIndexItem.ExifStatus.NotFoundSourceMissing, result.Status);

            // should not add content
            var allItems = await query.GetAllRecursiveAsync("/");

            Assert.AreEqual(0, allItems.Count);
        }