Esempio n. 1
0
        public async Task GeoCliInput_Default_HappyFlow()
        {
            var fakeIHttpProvider = new FakeIHttpProvider(new Dictionary <string, HttpContent>
            {
            });
            var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, _serviceScopeFactory, new FakeIWebLogger());

            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });
            var hash = (await new FileHash(storage).GetHashCodeAsync("/test.jpg")).Key;

            storage.FileCopy("/test.jpg", $"/{hash}.jpg");

            var geoWrite  = new FakeIGeoLocationWrite();
            var geoLookup = new FakeIGeoReverseLookup();
            var console   = new FakeConsoleWrapper();
            var geoCli    = new GeoCli(geoLookup, geoWrite,
                                       new FakeSelectorStorage(storage), new AppSettings(),
                                       console, new FakeIGeoFileDownload(), new FakeExifToolDownload());
            await geoCli.CommandLineAsync(new List <string> {
                "-p",
            }.ToArray());

            Assert.AreEqual(1, geoLookup.Count);
            Assert.IsTrue(storage.ExistFile($"/{hash}.jpg"));
            Assert.IsTrue(storage.ExistFile("/test.jpg"));
        }
Esempio n. 2
0
        public async Task CreateThumbTest_FileHash_SkipExtraLarge()
        {
            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                _fakeIStorageImageSubPath
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });

            var fileHash = "test_hash";

            // skip xtra large
            var isCreated = await new Thumbnail(storage,
                                                storage, new FakeIWebLogger()).CreateThumb(
                _fakeIStorageImageSubPath, fileHash, true);

            Assert.AreEqual(true, isCreated);

            Assert.AreEqual(true, storage.ExistFile(fileHash));
            Assert.AreEqual(true, storage.ExistFile(
                                ThumbnailNameHelper.Combine(fileHash, ThumbnailSize.Small)));
            Assert.AreEqual(false, storage.ExistFile(
                                ThumbnailNameHelper.Combine(fileHash, ThumbnailSize.ExtraLarge)));
        }
Esempio n. 3
0
        public async Task Rename_Move_FileToDeleted_Collections()
        {
            var fromItemJpg = "/child_folder/test_21.jpg";
            var fromItemDng = "/child_folder/test_21.dng";
            var toItemJpg   = "/child_folder/test_21_edit.jpg";
            var toItemDng   = "/child_folder/test_21_edit.dng";

            await _query.AddItemAsync(new FileIndexItem(fromItemJpg));

            await _query.AddItemAsync(new FileIndexItem(fromItemDng));

            await _query.AddParentItemsAsync(fromItemDng);

            var iStorage = new FakeIStorage(new List <string> {
                "/", "/child_folder", "/child_folder2"
            },
                                            new List <string> {
                fromItemJpg, fromItemDng
            });

            // only say: fromItemJpg > toItemJpg
            var renameFs1 = await new RenameService(_query, iStorage)
                            .Rename(fromItemJpg, toItemJpg);
            var renameFs = renameFs1.Where(p => p.Status != FileIndexItem.ExifStatus.NotFoundSourceMissing).ToList();

            // it has moved the files
            Assert.IsFalse(iStorage.ExistFile(fromItemJpg));
            Assert.IsFalse(iStorage.ExistFile(fromItemDng));

            Assert.IsTrue(iStorage.ExistFile(toItemJpg));
            Assert.IsTrue(iStorage.ExistFile(toItemDng));

            var toItemJpgItem = renameFs
                                .FirstOrDefault(p => p.FilePath == toItemJpg);
            var toItemDngItem = renameFs
                                .FirstOrDefault(p => p.FilePath == toItemDng);

            Assert.AreEqual(toItemJpg, toItemJpgItem.FilePath);
            Assert.AreEqual(toItemDng, toItemDngItem.FilePath);

            Assert.AreEqual(FileIndexItem.ExifStatus.Ok, toItemJpgItem.Status);
            Assert.AreEqual(FileIndexItem.ExifStatus.Ok, toItemDngItem.Status);

            // // and the database is ok
            Assert.AreEqual(toItemJpg,
                            _query.SingleItem(toItemJpg).FileIndexItem.FilePath);
            Assert.AreEqual(toItemDng,
                            _query.SingleItem(toItemDng).FileIndexItem.FilePath);
        }
Esempio n. 4
0
        public async Task Json_Write()
        {
            var fakeStorage = new FakeIStorage();

            await new FileIndexItemJsonParser(fakeStorage).WriteAsync(new FileIndexItem("/test.jpg"));
            Assert.IsTrue(fakeStorage.ExistFile("/.starsky.test.jpg.json"));
        }
Esempio n. 5
0
        public async Task UpdateAppSettingsTest_StorageFolder_JsonCheck()
        {
            var storage = new FakeIStorage(new List <string> {
                "test"
            });

            Environment.SetEnvironmentVariable("app__storageFolder", string.Empty);

            var appSettings = new AppSettings
            {
                AppSettingsPath = $"{Path.DirectorySeparatorChar}temp{Path.DirectorySeparatorChar}appsettings.json"
            };
            var controller = new AppSettingsController(appSettings, new FakeSelectorStorage(storage));
            await controller.UpdateAppSettings(
                new AppSettingsTransferObject
            {
                Verbose = true, StorageFolder = "test"
            });

            Assert.IsTrue(storage.ExistFile(appSettings.AppSettingsPath));

            var jsonContent = await new PlainTextFileHelper().StreamToStringAsync(
                storage.ReadStream(appSettings.AppSettingsPath));

            Assert.IsTrue(jsonContent.Contains("app\": {"));
            Assert.IsTrue(jsonContent.Contains("\"StorageFolder\": \""));
        }
Esempio n. 6
0
        public async Task Rename_Move_SidecarFile_ShouldMove_FileToFolder()
        {
            // var item1 = "/child_folder/test_20.jpg";
            var item1dng     = "/child_folder/test_20.dng";
            var item1SideCar = "/child_folder/test_20.xmp";

            // _query.AddItem(new FileIndexItem(item1));
            await _query.AddItemAsync(new FileIndexItem(item1dng));

            await _query.AddParentItemsAsync(item1dng);

            var iStorage = new FakeIStorage(new List <string> {
                "/", "/child_folder", "/child_folder2"
            },
                                            new List <string> {
                item1dng, item1SideCar
            });                                                             // item1

            // Move DNG to different folder
            var renameFs = await new RenameService(_query, iStorage)
                           .Rename(item1dng, "/child_folder2");

            Assert.AreEqual(item1dng, renameFs[0].FilePath);
            Assert.AreEqual(item1dng.Replace("child_folder", "child_folder2"),
                            renameFs[1].FilePath);

            // did move the side car file
            Assert.IsTrue(iStorage.ExistFile(item1SideCar.Replace("child_folder", "child_folder2")));
        }
Esempio n. 7
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"));
        }
Esempio n. 8
0
        public async Task PreGenerateThumbnail_Test()
        {
            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                CreateAnImageNoExif.Bytes
            });
            var selectorStorage = new FakeSelectorStorage(storage);

            var service = new WebHtmlPublishService(null, selectorStorage, null,
                                                    null, null, null, new FakeIWebLogger());
            var input = new List <FileIndexItem>
            {
                new FileIndexItem("/test.jpg")
                {
                    FileHash = "test_hash_01"
                }
            }.AsEnumerable();

            await service.PreGenerateThumbnail(input, "");

            Assert.IsTrue(storage.ExistFile("test_hash_01"));
        }
Esempio n. 9
0
        public async Task ExifToolCmdHelper_TestForFakeExifToolInjection()
        {
            var folderPaths = new List <string> {
                "/"
            };
            var inputSubPaths = new List <string> {
                "/test.dng"
            };

            var storage =
                new FakeIStorage(folderPaths, inputSubPaths,
                                 new List <byte[]> {
                FakeCreateAn.CreateAnImage.Bytes
            });

            var readMeta     = new ReadMeta(storage);
            var fakeExifTool = new FakeExifTool(storage, _appSettings);

            await new ExifCopy(storage, storage, fakeExifTool, readMeta).XmpSync("/test.dng");

            Assert.AreEqual(true, storage.ExistFile("/test.xmp"));
            var xmpContentReadStream = storage.ReadStream("/test.xmp");
            var xmpContent           = await new PlainTextFileHelper().StreamToStringAsync(xmpContentReadStream);

            // Those values are injected by fakeExifTool
            Assert.AreEqual(true, xmpContent.Contains("<x:xmpmeta xmlns:x='adobe:ns:meta/' x:xmptk='Image::ExifTool 11.30'>"));
            Assert.AreEqual(true, xmpContent.Contains("<rdf:li>test</rdf:li>"));
        }
Esempio n. 10
0
        public async Task Rename_Move_SidecarFile_ShouldNotMove_FileToFolder_ItsAJpeg()
        {
            var item1        = "/child_folder/test_20.jpg";
            var item1SideCar = "/child_folder/test_20.xmp";

            await _query.AddItemAsync(new FileIndexItem(item1));

            await _query.AddParentItemsAsync(item1);

            var iStorage = new FakeIStorage(new List <string> {
                "/", "/child_folder", "/child_folder2"
            },
                                            new List <string> {
                item1, item1SideCar
            });

            // Move Jpg to different folder but the xmp should be ignored
            var renameFs = await new RenameService(_query, iStorage)
                           .Rename(item1, "/child_folder2");

            Assert.AreEqual(item1, renameFs.FirstOrDefault().FilePath);
            Assert.AreEqual(item1.Replace("child_folder", "child_folder2"),
                            renameFs[1].FilePath);

            // it should not move the sidecar file
            Assert.IsFalse(iStorage.ExistFile(item1SideCar.Replace("child_folder", "child_folder2")));
        }
Esempio n. 11
0
        public async Task GeoCliInput_AbsolutePath_HappyFlow()
        {
            var fakeIHttpProvider = new FakeIHttpProvider(new Dictionary <string, HttpContent>
            {
            });
            var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, _serviceScopeFactory, new FakeIWebLogger());

            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });

            var appSettings = new AppSettings {
                Verbose = true
            };
            var geoWrite  = new FakeIGeoLocationWrite();
            var geoLookup = new FakeIGeoReverseLookup();
            var console   = new FakeConsoleWrapper();
            var geoCli    = new GeoCli(geoLookup, geoWrite,
                                       new FakeSelectorStorage(storage), appSettings,
                                       console, new FakeIGeoFileDownload(), new FakeExifToolDownload());
            await geoCli.CommandLineAsync(new List <string> {
                "-p", "/test"
            }.ToArray());

            Assert.AreEqual(appSettings.StorageFolder, "/test" + Path.DirectorySeparatorChar);
            Assert.AreEqual(1, geoLookup.Count);
            Assert.IsTrue(storage.ExistFile("/test.jpg"));
        }
Esempio n. 12
0
        public void PublishCreate_existItem_Force()
        {
            var appSettings = new AppSettings {
                TempFolder = Path.DirectorySeparatorChar.ToString()
            };
            var storage = new FakeIStorage(new List <string> {
                Path.DirectorySeparatorChar + "test"
            },
                                           new List <string> {
                Path.DirectorySeparatorChar + "test.zip"
            });

            var controller = new PublishController(appSettings, new FakeIPublishPreflight(),
                                                   new FakeIWebHtmlPublishService(),
                                                   new FakeIMetaInfo(new List <FileIndexItem>
            {
                new FileIndexItem("/test.jpg")
                {
                    Status = FileIndexItem.ExifStatus.Ok
                }
            }),
                                                   new FakeSelectorStorage(storage),
                                                   _bgTaskQueue, new FakeIWebLogger());

            var actionResult = controller.PublishCreate("/test.jpg",
                                                        "test", "test", true) as JsonResult;
            var result = actionResult.Value as string;

            Assert.AreEqual("test", result);
            Assert.IsFalse(storage.ExistFolder(Path.DirectorySeparatorChar + "test"));
            Assert.IsFalse(storage.ExistFile(Path.DirectorySeparatorChar + "test.zip"));
        }
Esempio n. 13
0
        public async Task GenerateJpeg_Thumbnail_CorruptOutput_Test()
        {
            var appSettings = new AppSettings
            {
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> >
                {
                    {
                        "default",
                        new List <AppSettingsPublishProfiles>
                        {
                            new AppSettingsPublishProfiles
                            {
                                ContentType = TemplateContentType.Jpeg,
                                Path        = "index.html",
                                MetaData    = true,
                            }
                        }
                    }
                },
                Verbose = true
            };
            var storage = new FakeIStorage(new List <string>(),
                                           new List <string> {
                "corrupt"
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });

            var selectorStorage = new FakeSelectorStorage(storage);

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

            var profiles = new PublishPreflight(appSettings,
                                                new ConsoleWrapper()).GetPublishProfileName("default");

            var generateJpeg = await service.GenerateJpeg(profiles.FirstOrDefault(),
                                                          new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
                {
                    FileHash = "fileHash"
                }
            },
                                                          Path.DirectorySeparatorChar.ToString(), 1);

            // should not output file due corrupt output of image generation
            Assert.IsTrue(generateJpeg.ContainsKey("test.jpg"));

            // removed in script due corrupt output
            Assert.IsFalse(storage.ExistFile(Path.DirectorySeparatorChar + "test.jpg"));
        }
Esempio n. 14
0
        public async Task Image_WithThumbnail_InMemoryIntegrationTest()
        {
            var selectorStorage = new FakeSelectorStorage(_iStorageFake);
            var logger          = new FakeIWebLogger();
            var result          = await new MetaExifThumbnailService(new AppSettings(), selectorStorage,
                                                                     new OffsetDataMetaExifThumbnail(selectorStorage, logger),
                                                                     new WriteMetaThumbnailService(selectorStorage, logger, new AppSettings()), logger)
                                  .AddMetaThumbnail("/poppy.jpg", "/meta_image");

            Assert.IsTrue(result);
            Assert.IsTrue(_iStorageFake.ExistFile("/meta_image@meta"));
        }
Esempio n. 15
0
        public async Task ThumbnailCleanerTestAsync_Cleaner_WithDifferentSizes()
        {
            var fakeStorage = new FakeIStorage(new List <string> {
                "/"
            },
                                               new List <string>
            {
                ThumbnailNameHelper.Combine("hash1234", ThumbnailSize.Large),
                ThumbnailNameHelper.Combine("hash1234", ThumbnailSize.ExtraLarge),
                ThumbnailNameHelper.Combine("hash1234", ThumbnailSize.TinyMeta),
                ThumbnailNameHelper.Combine("exist", ThumbnailSize.TinyMeta),
                ThumbnailNameHelper.Combine("exist", ThumbnailSize.ExtraLarge),
                ThumbnailNameHelper.Combine("exist", ThumbnailSize.TinyMeta),
                ThumbnailNameHelper.Combine("exist", ThumbnailSize.Large),
                ThumbnailNameHelper.Combine("12234456677", ThumbnailSize.ExtraLarge),
            });

            var fakeQuery = new FakeIQuery(new List <FileIndexItem>
            {
                new FileIndexItem("/test.jpg")
                {
                    FileHash = "exist"
                }
            });

            var thumbnailCleaner = new ThumbnailCleaner(fakeStorage, fakeQuery,
                                                        new FakeIWebLogger());

            await thumbnailCleaner.CleanAllUnusedFilesAsync(1);

            Assert.IsTrue(fakeStorage.ExistFile(
                              ThumbnailNameHelper.Combine("exist", ThumbnailSize.TinyMeta)));
            Assert.IsTrue(fakeStorage.ExistFile(
                              ThumbnailNameHelper.Combine("exist", ThumbnailSize.ExtraLarge)));
            Assert.IsTrue(fakeStorage.ExistFile(
                              ThumbnailNameHelper.Combine("exist", ThumbnailSize.Large)));
            Assert.IsTrue(fakeStorage.ExistFile(
                              ThumbnailNameHelper.Combine("exist", ThumbnailSize.TinyMeta)));

            Assert.IsFalse(fakeStorage.ExistFile(
                               ThumbnailNameHelper.Combine("hash1234", ThumbnailSize.TinyMeta)));
            Assert.IsFalse(fakeStorage.ExistFile(
                               ThumbnailNameHelper.Combine("hash1234", ThumbnailSize.ExtraLarge)));
            Assert.IsFalse(fakeStorage.ExistFile(
                               ThumbnailNameHelper.Combine("hash1234", ThumbnailSize.Large)));
            Assert.IsFalse(fakeStorage.ExistFile(
                               ThumbnailNameHelper.Combine("12234456677", ThumbnailSize.ExtraLarge)));
        }
Esempio n. 16
0
        public void ExtractTarGz()
        {
            // Gz Tar!
            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
            });

            var memoryStream = new MemoryStream(CreateAnExifToolTarGz.Bytes);

            new TarBal(storage).ExtractTarGz(memoryStream, "/test");
            Assert.IsTrue(storage.ExistFile("/test/Image-ExifTool-11.99/exiftool"));
        }
Esempio n. 17
0
        public async Task GenerateJpeg_Large_Test()
        {
            var appSettings = new AppSettings
            {
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> >
                {
                    {
                        "default",
                        new List <AppSettingsPublishProfiles>
                        {
                            new AppSettingsPublishProfiles
                            {
                                ContentType    = TemplateContentType.Jpeg,
                                Path           = "index.html",
                                MetaData       = false,
                                SourceMaxWidth = 1001
                            }
                        }
                    }
                },
                Verbose = true
            };
            var storage = new FakeIStorage(new List <string>(),
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });

            var selectorStorage = new FakeSelectorStorage(storage);

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

            var profiles = new PublishPreflight(appSettings,
                                                new ConsoleWrapper()).GetPublishProfileName("default");

            var generateJpeg = await service.GenerateJpeg(profiles.FirstOrDefault(),
                                                          new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
            },
                                                          Path.DirectorySeparatorChar.ToString(), 1);

            Assert.IsTrue(generateJpeg.ContainsKey("test.jpg"));
            Assert.IsTrue(storage.ExistFile(Path.DirectorySeparatorChar + "test.jpg"));
        }
Esempio n. 18
0
        public void ExportManifestTest_Export()
        {
            var plainTextFileHelper = new FakePlainTextFileHelper();
            var appSettings         = new AppSettings();

            var storage = new FakeIStorage();

            new PublishManifest(storage, plainTextFileHelper)
            .ExportManifest(appSettings.StorageFolder, "Test",
                            new Dictionary <string, bool>());

            var expectedPath = Path.Combine(appSettings.StorageFolder, "_settings.json");

            Assert.IsTrue(storage.ExistFile(expectedPath));
        }
Esempio n. 19
0
        public async Task SwaggerTest_Integration_Test()
        {
            var swaggerFilePath = Path.Join(_appSettings.TempFolder, _appSettings.Name.ToLowerInvariant() + ".json");

            var storage             = new FakeIStorage();
            var fakeSelectorStorage = new FakeSelectorStorage(storage);


            var host = WebHost.CreateDefaultBuilder()
                       .UseUrls("http://localhost:5051")
                       .ConfigureServices(services =>
            {
                services.AddMvcCore().AddApiExplorer();
                services.AddSwaggerGen();
                new SwaggerSetupHelper(_appSettings).Add01SwaggerGenHelper(services);
            })
                       .Configure(app =>
            {
                app.UseRouting();
                app.UseEndpoints(endpoints =>
                {
                    endpoints.MapControllerRoute("default", "{controller=Home}/{action=Index}/{id?}");
                });

                new SwaggerSetupHelper(_appSettings).Add02AppUseSwaggerAndUi(app);
                using (var serviceScope = app.ApplicationServices
                                          .GetRequiredService <IServiceScopeFactory>()
                                          .CreateScope())
                {
                    var swaggerProvider = ( ISwaggerProvider )serviceScope.ServiceProvider.GetService(typeof(ISwaggerProvider));
                    new SwaggerExportHelper(null).Add03AppExport(_appSettings, fakeSelectorStorage, swaggerProvider);
                }
            }).Build();

            await host.StartAsync();

            await host.StopAsync();

            Assert.AreEqual(true, storage.ExistFile(swaggerFilePath));

            var swaggerFileContent =
                await new PlainTextFileHelper().StreamToStringAsync(
                    storage.ReadStream(swaggerFilePath));

            System.Console.WriteLine("swaggerFileContent " + swaggerFileContent);

            Assert.AreEqual(true, swaggerFileContent.Contains($"\"Title\": \"{_appSettings.Name}\""));
        }
Esempio n. 20
0
        public async Task WriteAndCropFile_FileIsWritten()
        {
            var storage = new FakeIStorage();
            var service = new WriteMetaThumbnailService(new FakeSelectorStorage(storage),
                                                        new FakeIWebLogger(), new AppSettings());
            var result = await service.WriteAndCropFile("test", new OffsetModel
            {
                Count = CreateAnImage.Bytes.Length,
                Data  = CreateAnImage.Bytes,
                Index = 0
            }, 6, 6,
                                                        FileIndexItem.Rotation.Horizontal);

            Assert.IsTrue(result);
            Assert.IsTrue(storage.ExistFile(ThumbnailNameHelper.Combine("test", ThumbnailSize.TinyMeta)));
        }
Esempio n. 21
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"));
        }
Esempio n. 22
0
        public async Task ThumbnailCleanerTestAsync_CatchException()
        {
            var fakeStorage = new FakeIStorage(new List <string> {
                "/"
            },
                                               new List <string>
            {
                ThumbnailNameHelper.Combine("hash1234", ThumbnailSize.Large),
            });

            var fakeQuery = new FakeIQueryException(new Microsoft.EntityFrameworkCore.Storage.RetryLimitExceededException());

            var thumbnailCleaner = new ThumbnailCleaner(fakeStorage, fakeQuery,
                                                        new FakeIWebLogger());

            await thumbnailCleaner.CleanAllUnusedFilesAsync();

            // the file is there even the connection is crashed
            Assert.IsTrue(fakeStorage.ExistFile(
                              ThumbnailNameHelper.Combine("hash1234", ThumbnailSize.Large)));
        }
Esempio n. 23
0
        public async Task CreateXmpFileIsNotExist_CreateFile_dng()
        {
            var updateModel = new FileIndexItem
            {
                LocationAltitude = -41,
            };
            var folderPaths = new List <string> {
                "/"
            };

            var inputSubPaths = new List <string> {
                "/test.dng"
            };

            var storage =
                new FakeIStorage(folderPaths, inputSubPaths, null);
            var fakeExifTool = new FakeExifTool(storage, _appSettings);

            await new ExifToolCmdHelper(fakeExifTool,
                                        storage, storage,
                                        new FakeReadMeta()).CreateXmpFileIsNotExist(updateModel, inputSubPaths);

            Assert.IsTrue(storage.ExistFile("/test.xmp"));
        }
Esempio n. 24
0
        public async Task GeoCliInput_RelativeUrl_HappyFlow()
        {
            var fakeIHttpProvider = new FakeIHttpProvider(new Dictionary <string, HttpContent>
            {
            });
            var httpClientHelper = new HttpClientHelper(fakeIHttpProvider, _serviceScopeFactory, new FakeIWebLogger());

            var relativeParentFolder = new AppSettings().DatabasePathToFilePath(
                new StructureService(new FakeIStorage(), new AppSettings().Structure)
                .ParseSubfolders(0), false);

            var storage = new FakeIStorage(new List <string> {
                "/"
            },
                                           new List <string> {
                "/test.jpg"
            },
                                           new List <byte[]> {
                CreateAnImage.Bytes
            });

            var appSettings = new AppSettings();
            var geoWrite    = new FakeIGeoLocationWrite();
            var geoLookup   = new FakeIGeoReverseLookup();
            var console     = new FakeConsoleWrapper();
            var geoCli      = new GeoCli(geoLookup, geoWrite,
                                         new FakeSelectorStorage(storage), appSettings,
                                         console, new FakeIGeoFileDownload(), new FakeExifToolDownload());
            await geoCli.CommandLineAsync(new List <string> {
                "-g", "0"
            }.ToArray());

            Assert.AreEqual(appSettings.StorageFolder, relativeParentFolder + Path.DirectorySeparatorChar);
            Assert.AreEqual(1, geoLookup.Count);
            Assert.IsTrue(storage.ExistFile("/test.jpg"));
        }