コード例 #1
0
        public void Delete_DirectoryWithChildItems_CollectionsOff()
        {
            var storage = new FakeIStorage(new List <string> {
                "/test", "/"
            },
                                           new List <string> {
                "/test/image.jpg", "/test/image.dng"
            },
                                           new List <byte[]> {
                FakeCreateAn.CreateAnImage.Bytes,
                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/image.jpg"),
                new FileIndexItem("/test/image.dng")
            });

            var deleteItem = new DeleteItem(fakeQuery, new AppSettings(), selectorStorage);
            var result     = deleteItem.Delete("/test", false);

            Assert.AreEqual(3, result.Count);
            Assert.AreEqual("/test", result[0].FilePath);
            Assert.AreEqual("/test/image.jpg", result[1].FilePath);
            Assert.AreEqual("/test/image.dng", result[2].FilePath);

            Assert.AreEqual(0, storage.GetAllFilesInDirectoryRecursive("/").Count());
            Assert.AreEqual(0, fakeQuery.GetAllRecursive("/").Count);
        }
コード例 #2
0
        public async Task ThumbnailGenerationTest_CheckIfGenerated()
        {
            var storage = new FakeIStorage(new List <string> {
                "/"
            }, new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });

            var thumbStorage = new FakeIStorage();

            var selectorStorage = new FakeSelectorStorage(storage);
            var controller      = new ThumbnailGenerationController(selectorStorage, new FakeIQuery(
                                                                        new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
            }
                                                                        ), new FakeIWebLogger(), new FakeIWebSocketConnectionsService());

            await controller.WorkItem("/", storage, thumbStorage);

            var folder = thumbStorage.GetAllFilesInDirectoryRecursive(
                "/").ToList();

            Assert.AreEqual(1, folder.Count(p => !p.Contains("@")));
        }
コード例 #3
0
        public async Task RenameFsTest_FakeIStorage_File_To_ExistFolder_Json_SidecarFile()
        {
            CreateFoldersAndFilesInDatabase();

            var initFolderList = new List <string> {
                "/", "/test"
            };
            var initFileList = new List <string> {
                _fileInExist.FilePath, JsonSidecarLocation.JsonLocation(_fileInExist.FilePath)
            };

            var iStorage = new FakeIStorage(initFolderList, initFileList);

            // the input is still  FileName = "file.jpg", ParentDirectory = "/exist",
            var renameFs = await new RenameService(_query, iStorage)
                           .Rename(initFileList.FirstOrDefault(), "/test/", true);

            // to file: (in database)
            var all2 = await _query.GetAllRecursiveAsync();

            var selectFile3 = all2.FirstOrDefault(p => p.FileName == "file.jpg");

            Assert.AreEqual("file.jpg", selectFile3.FileName);
            Assert.AreEqual("/test", selectFile3.ParentDirectory);

            // check if sidecar json are moved (on fake Filesystem)
            var values = iStorage.GetAllFilesInDirectoryRecursive("/test").ToList();

            Assert.AreEqual("/test/.starsky.file.jpg.json",
                            values.FirstOrDefault(p => p == "/test/.starsky.file.jpg.json"));
            Assert.AreEqual(FileIndexItem.ExifStatus.NotFoundSourceMissing, renameFs.FirstOrDefault().Status);
            Assert.AreEqual(FileIndexItem.ExifStatus.Ok, renameFs[1].Status);

            RemoveFoldersAndFilesInDatabase();
        }
コード例 #4
0
        public async Task RenameFsTest_RenameOneFile_JsonSidecarFile()
        {
            CreateFoldersAndFilesInDatabase();

            var iStorage = new FakeIStorage(new List <string> {
                _folderExist.FilePath
            },
                                            new List <string> {
                _fileInExist.FilePath, JsonSidecarLocation.JsonLocation(_fileInExist.FilePath)
            });

            var renameFs = await new RenameService(_query, iStorage)
                           .Rename(_fileInExist.FilePath, _folderExist.FilePath + "/test2.jpg");

            // check if sidecar json are moved (on fake Filesystem)
            var values = iStorage.GetAllFilesInDirectoryRecursive("/").ToList();

            Assert.AreEqual("/exist/.starsky.test2.jpg.json",
                            values.FirstOrDefault(p => p == "/exist/.starsky.test2.jpg.json"));
            Assert.AreEqual(FileIndexItem.ExifStatus.Ok,
                            renameFs.FirstOrDefault(p => p.FilePath == "/exist/test2.jpg").Status);
            Assert.AreEqual(FileIndexItem.ExifStatus.NotFoundSourceMissing,
                            renameFs.FirstOrDefault(p => p.FilePath == "/exist/file.jpg").Status);

            RemoveFoldersAndFilesInDatabase();
        }
コード例 #5
0
        public async Task MoveSourceFiles_False()
        {
            var profile = new AppSettingsPublishProfiles
            {
                ContentType = TemplateContentType.MoveSourceFiles, Folder = "src",
            };

            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            });
            var selectorStorage = new FakeSelectorStorage(storage);
            var appSettings     = new AppSettings
            {
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> >
                {
                    {
                        "default",
                        new List <AppSettingsPublishProfiles>
                        {
                            profile
                        }
                    }
                },
                Verbose = true
            };

            var service = new WebHtmlPublishService(new PublishPreflight(appSettings, new ConsoleWrapper()),
                                                    selectorStorage, appSettings,
                                                    new FakeExifTool(storage, appSettings), new FakeIOverlayImage(selectorStorage),
                                                    new ConsoleWrapper(), new FakeIWebLogger());

            await service.GenerateMoveSourceFiles(profile,
                                                  new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
            }, "/",
                                                  false);

            // False situation
            Assert.IsTrue(storage.GetAllFilesInDirectoryRecursive("/")
                          .FirstOrDefault(p => p != null && p.Contains("src/test.jpg")) != null);

            // is True instead of False
            Assert.IsTrue(storage.ExistFile("/test.jpg"));
        }
コード例 #6
0
        public async Task FileStreamingHelper_MultipartRequestHelper()
        {
            var contentType = $"multipart/form-data; boundary=\"{Boundary}\"";

            // string contentType, Stream requestBody, AppSettings appSettings,
            // ISelectorStorage selectorStorage, string headerFileName = null

            var stream  = MakeStream(TwoPartBody);
            var storage = new FakeIStorage();

            storage.CreateDirectory(_appSettings.TempFolder);
            var streamSelector = new FakeSelectorStorage(storage);

            await FileStreamingHelper.StreamFile(contentType, stream, _appSettings, streamSelector);

            var tempPath = storage.GetAllFilesInDirectoryRecursive(_appSettings.TempFolder).FirstOrDefault();

            Assert.IsTrue(tempPath?.EndsWith("a.txt"));
        }