Пример #1
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);
        }
Пример #2
0
        public void Delete_IsFileRemoved()
        {
            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                FakeCreateAn.CreateAnImage.Bytes
            });
            var selectorStorage = new FakeSelectorStorage(storage);

            var fakeQuery =
                new FakeIQuery(new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
                {
                    Tags = "!delete!"
                }
            });
            var deleteItem = new DeleteItem(fakeQuery, new AppSettings(), selectorStorage);
            var result     = deleteItem.Delete("/test.jpg", true);

            Assert.AreEqual(FileIndexItem.ExifStatus.Ok,
                            result.FirstOrDefault().Status);

            Assert.IsNull(fakeQuery.GetObjectByFilePath("/test.jpg"));
            Assert.IsFalse(storage.ExistFile("/test.jpg"));
        }
Пример #3
0
        public void Delete_IsFolderRemoved_IncludingChildFolders()
        {
            var storage = new FakeIStorage(
                new List <string>
            {
                "/test",
                "/",
                "/test/child_folder"
            },
                new List <string> {
                "/test/child_folder/i.jpg"
            },
                new List <byte[]>
            {
                FakeCreateAn.CreateAnImage.Bytes
            });
            var selectorStorage = new FakeSelectorStorage(storage);

            var fakeQuery =
                new FakeIQuery(new List <FileIndexItem> {
                new FileIndexItem("/test")
                {
                    IsDirectory = true, Tags = "!delete!"
                },
                new FileIndexItem("/test/child_folder")
                {
                    IsDirectory = true
                },
                new FileIndexItem("/test/child_folder/2")
                {
                    IsDirectory = true
                }
            });
            var deleteItem = new DeleteItem(fakeQuery, new AppSettings(), selectorStorage);
            var result     = deleteItem.Delete("/test", true);

            Assert.AreEqual(FileIndexItem.ExifStatus.Ok,
                            result.FirstOrDefault().Status);

            Assert.AreEqual(0, fakeQuery.GetAllFolders().Count);
            Assert.IsNull(fakeQuery.GetObjectByFilePath("/test"));
            Assert.IsNull(fakeQuery.GetObjectByFilePath("/test/child_folder"));
            Assert.IsNull(fakeQuery.GetObjectByFilePath("/test/child_folder/2"));
            Assert.IsFalse(storage.ExistFolder("/test"));
        }