Esempio n. 1
0
        public async Task GeoLocationWriteLoopFolderTest()
        {
            var metaFilesInDirectory = new List <FileIndexItem>
            {
                new FileIndexItem
                {
                    FileName         = "test.jpg",             //<= used to check
                    ParentDirectory  = "/",
                    Latitude         = 1,
                    Longitude        = 1,
                    LocationAltitude = 1,
                    LocationCity     = "city",
                    LocationState    = "state",
                    LocationCountry  = "country"
                }
            };
            var console = new FakeConsoleWrapper();

            var fakeIStorage = new FakeIStorage();

            await new GeoLocationWrite(_appSettings, _exifTool, new FakeSelectorStorage(fakeIStorage), console).LoopFolderAsync(metaFilesInDirectory, true);
            Assert.IsNotNull(metaFilesInDirectory);

            Assert.AreEqual(1, console.WrittenLines.Count);
            Assert.AreEqual("🚀", console.WrittenLines[0]);
        }
Esempio n. 2
0
        public void Run_SettingsFile_successful()
        {
            var console = new FakeConsoleWrapper();

            var fakeSelectorStorage = new FakeSelectorStorage(new FakeIStorage(new List <string> {
                "/test"
            },
                                                                               new List <string> {
                $"/test{Path.DirectorySeparatorChar}_settings.json", "/test/1000/0_kl1k.jpg"
            }, new List <byte[]> {
                ExampleManifest(), new byte[0]
            }));

            new WebFtpCli(_appSettings, fakeSelectorStorage, console, _webRequestFactory)
            .Run(new [] { "-p", "/test" });

            var isSuccess = console.WrittenLines.LastOrDefault()
                            .Contains("Ftp copy successful done");

            // To Debug why the test has failed
            if (!isSuccess)
            {
                foreach (var line in console.WrittenLines)
                {
                    Console.WriteLine(line);
                }
            }

            Assert.IsTrue(isSuccess);
        }
Esempio n. 3
0
        public void NeedHelpShowDialog_WebHtml_Verbose()
        {
            var consoleWrapper = new FakeConsoleWrapper();
            var appSettings    =
                new AppSettings {
                Verbose         = true,
                ApplicationType = AppSettings.StarskyAppType.WebHtml,
                PublishProfiles = new Dictionary <string, List <AppSettingsPublishProfiles> > {
                    {
                        "_d", new List <AppSettingsPublishProfiles>
                        {
                            new AppSettingsPublishProfiles
                            {
                                Append = "_append",
                                Copy   = true,
                                Folder = "folder"
                            }
                        }
                    }
                }
            };

            new ArgsHelper(appSettings, consoleWrapper)
            .NeedHelpShowDialog();

            var contains = consoleWrapper.WrittenLines.Contains(
                "--- Path:  Append: _append Copy: True Folder: folder/ Prepend:  Template:  " +
                "ContentType: None MetaData: True OverlayMaxWidth: 100 SourceMaxWidth: 100 ");

            Assert.IsTrue(contains);
        }
Esempio n. 4
0
        public async Task GeoLocationWriteLoopFolderTest_verbose()
        {
            var metaFilesInDirectory = new List <FileIndexItem>
            {
                new FileIndexItem
                {
                    FileName         = "test.jpg",             //<= used to check
                    ParentDirectory  = "/",
                    Latitude         = 1,
                    Longitude        = 1,
                    LocationAltitude = 1,
                    LocationCity     = "city",
                    LocationState    = "state",
                    LocationCountry  = "country"
                }
            };
            var console = new FakeConsoleWrapper();

            await new GeoLocationWrite(new AppSettings {
                Verbose = true
            }, _exifTool, new FakeSelectorStorage(), console)
            .LoopFolderAsync(metaFilesInDirectory,
                             true);

            Assert.AreEqual(2, console.WrittenLines.Count);
            Assert.IsTrue(console.WrittenLines.LastOrDefault().Contains("GeoLocationWrite"));
        }
Esempio n. 5
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. 6
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. 7
0
        public void Run_PathArg()
        {
            var console = new FakeConsoleWrapper();

            new WebFtpCli(_appSettings, new FakeSelectorStorage(), console, _webRequestFactory)
            .Run(new [] { "-p" });

            Assert.IsTrue(console.WrittenLines.LastOrDefault().Contains("is not found"));
        }
Esempio n. 8
0
        public void Run_Default()
        {
            var console = new FakeConsoleWrapper();

            new WebFtpCli(_appSettings, new FakeSelectorStorage(), console, _webRequestFactory)
            .Run(new [] { "" });

            Assert.IsTrue(console.WrittenLines.FirstOrDefault().Contains("Please use the -p to add a path first"));
        }
Esempio n. 9
0
        public void CreateAccount_AsInput()
        {
            var console = new FakeConsoleWrapper();

            new ConsoleAdmin(new FakeUserManagerActiveUsers(), console).Tool("*****@*****.**", "1234567890123456");

            Assert.AreEqual("User [email protected] is created",
                            console.WrittenLines.LastOrDefault());
        }
Esempio n. 10
0
        public async Task Publisher_PathArg()
        {
            var console = new FakeConsoleWrapper();

            await new PublishCli(new FakeSelectorStorage(), new FakeIPublishPreflight(), new FakeIWebHtmlPublishService(),
                                 new AppSettings(), console).Publisher(new [] { "-p" });

            Assert.IsTrue(console.WrittenLines.LastOrDefault().Contains("is not found"));
        }
Esempio n. 11
0
        public async Task Publisher_Default()
        {
            var console = new FakeConsoleWrapper();

            await new PublishCli(new FakeSelectorStorage(), new FakeIPublishPreflight(), new FakeIWebHtmlPublishService(),
                                 new AppSettings(), console).Publisher(new [] { "" });

            Assert.IsTrue(console.WrittenLines.FirstOrDefault().Contains("Please use the -p to add a path first"));
        }
Esempio n. 12
0
        public void Run_Help()
        {
            var console = new FakeConsoleWrapper();

            new WebFtpCli(_appSettings, new FakeSelectorStorage(), console, _webRequestFactory)
            .Run(new [] { "-h" });

            Assert.IsTrue(console.WrittenLines.FirstOrDefault().Contains("Starksy WebFtp Cli ~ Help:"));
            Assert.IsTrue(console.WrittenLines.LastOrDefault().Contains("  use -v -help to show settings: "));
        }
Esempio n. 13
0
        public async Task ImporterCli_NoArgs_DefaultHelp()
        {
            var fakeConsole = new FakeConsoleWrapper(new List <string>());

            await new ImportCli(
                new FakeIImport(new FakeSelectorStorage()), new AppSettings(),
                fakeConsole, new FakeExifToolDownload()).Importer(new List <string>().ToArray());

            Assert.IsTrue(fakeConsole.WrittenLines.FirstOrDefault().Contains("Starksy Importer Cli ~ Help"));
        }
Esempio n. 14
0
        public void ArgsHelper_NeedHelpShowDialog_Sync()
        {
            var console = new FakeConsoleWrapper();

            new ArgsHelper(new AppSettings {
                ApplicationType = AppSettings.StarskyAppType.Sync
            }, console)
            .NeedHelpShowDialog();
            Assert.IsTrue(console.WrittenLines[0].Contains("Sync"));
        }
Esempio n. 15
0
        public async Task Publisher_Help()
        {
            var console = new FakeConsoleWrapper();

            await new PublishCli(new FakeSelectorStorage(), new FakeIPublishPreflight(), new FakeIWebHtmlPublishService(),
                                 new AppSettings(), console).Publisher(new [] { "-h" });

            Assert.IsTrue(console.WrittenLines.FirstOrDefault().Contains("Starksy WebHtml Cli ~ Help:"));
            Assert.IsTrue(console.WrittenLines.LastOrDefault().Contains("  use -v -help to show settings: "));
        }
Esempio n. 16
0
        public void ArgsHelper_NeedHelpShowDialog_WebHtml()
        {
            var console = new FakeConsoleWrapper();

            new ArgsHelper(new AppSettings {
                ApplicationType = AppSettings.StarskyAppType.WebHtml,
                Verbose         = true
            }, console)
            .NeedHelpShowDialog();
            Assert.IsTrue(console.WrittenLines[0].Contains("WebHtml"));
        }
Esempio n. 17
0
        public void ArgsHelper_AppInsightsKey_ApplicationInsightsDatabaseTracking_NoKey()
        {
            var console = new FakeConsoleWrapper();

            new ArgsHelper(new AppSettings {
                ApplicationType = AppSettings.StarskyAppType.Sync, Verbose = true
            }, console)
            .NeedHelpShowDialog();

            Assert.IsFalse(console.WrittenLines.Any(p => p.Contains("ApplicationInsightsDatabaseTracking")));
        }
Esempio n. 18
0
        public void Run_NoSettingsFileInFolder()
        {
            var console             = new FakeConsoleWrapper();
            var fakeSelectorStorage = new FakeSelectorStorage(new FakeIStorage(new List <string> {
                "/test"
            }));

            new WebFtpCli(_appSettings, fakeSelectorStorage, console, _webRequestFactory)
            .Run(new [] { "-p", "/test" });

            Assert.IsTrue(console.WrittenLines.LastOrDefault().Contains("generate a settings file"));
        }
Esempio n. 19
0
        public async Task Publisher_NoSettingsFileInFolder()
        {
            var console             = new FakeConsoleWrapper();
            var fakeSelectorStorage = new FakeSelectorStorage(new FakeIStorage(new List <string> {
                "/test"
            }));

            await new PublishCli(fakeSelectorStorage, new FakeIPublishPreflight(), new FakeIWebHtmlPublishService(),
                                 new AppSettings(), console).Publisher(new [] { "-p", "/test" });

            Assert.IsTrue(console.WrittenLines.LastOrDefault().Contains("done"));
        }
Esempio n. 20
0
        public async Task GeoCliInput_Help()
        {
            var console = new FakeConsoleWrapper();
            var metaCli = new MetaThumbnailCommandLineHelper(new FakeSelectorStorage(),
                                                             new AppSettings(), console, new FakeIMetaExifThumbnailService());

            await metaCli.CommandLineAsync(new List <string> {
                "-h",
            }.ToArray());

            Assert.IsTrue(console.WrittenLines[0].Contains("Help"));
        }
Esempio n. 21
0
        public async Task Sync_Help()
        {
            var console = new FakeConsoleWrapper();

            await new SyncCli(new FakeISynchronize(), new AppSettings(), console,
                              new FakeSelectorStorage()).Sync(
                new List <string> {
                "-h"
            }.ToArray());

            Assert.IsTrue(console.WrittenLines[0].Contains("Help"));
        }
Esempio n. 22
0
        public void StarskyAdminCliProgramTest_NoInput()
        {
            var console = new FakeConsoleWrapper(new List <string>
            {
                string.Empty
            });

            new ConsoleAdmin(new FakeUserManagerActiveUsers(), console).Tool(string.Empty, string.Empty);

            Assert.AreEqual("No input selected",
                            console.WrittenLines.LastOrDefault());
        }
Esempio n. 23
0
        public void ArgsHelper_NeedHelpShowDialog_MetaThumbnail()
        {
            var console = new FakeConsoleWrapper();

            // Just simple show a console dialog
            new ArgsHelper(new AppSettings {
                ApplicationType = AppSettings.StarskyAppType.MetaThumbnail,
                Verbose         = true
            }, console)
            .NeedHelpShowDialog();
            Assert.IsTrue(console.WrittenLines[0].Contains("MetaThumbnail"));
        }
Esempio n. 24
0
        public async Task Sync_NoArgs_NotFound()
        {
            var fakeSync = new FakeISynchronize();
            var console  = new FakeConsoleWrapper();

            await new SyncCli(fakeSync, new AppSettings(), console,
                              new FakeSelectorStorage()).Sync(
                new List <string> {
                ""
            }.ToArray());

            Assert.IsTrue(console.WrittenLines.Any(p => p.Contains("Not Found")));
        }
Esempio n. 25
0
        public void UserCreate_NoInput()
        {
            var console = new FakeConsoleWrapper(new List <string>
            {
                "*****@*****.**",
                string.Empty
            });

            new ConsoleAdmin(new FakeUserManagerActiveUsers(), console).Tool(string.Empty, string.Empty);

            Assert.AreEqual("No input selected",
                            console.WrittenLines.LastOrDefault());
        }
Esempio n. 26
0
        public void UserCreate_ValidationShouldFail()
        {
            var console = new FakeConsoleWrapper(new List <string>
            {
                "no_email",
                "false"
            });

            new ConsoleAdmin(new FakeUserManagerActiveUsers(), console).Tool(string.Empty, string.Empty);

            Assert.AreEqual("username / password is not valid",
                            console.WrittenLines.LastOrDefault());
        }
Esempio n. 27
0
        public void StarskyAdminCliProgramTest_UserDoesNotExist_AndCreateAccount()
        {
            var console = new FakeConsoleWrapper(new List <string>
            {
                "*****@*****.**",
                "1234567890123456"
            });

            new ConsoleAdmin(new FakeUserManagerActiveUsers(), console).Tool(string.Empty, string.Empty);

            Assert.AreEqual("User [email protected] is created",
                            console.WrittenLines.LastOrDefault());
        }
Esempio n. 28
0
        public void Run_NoFtpSettings()
        {
            var console             = new FakeConsoleWrapper();
            var fakeSelectorStorage = new FakeSelectorStorage(new FakeIStorage(new List <string> {
                "/test"
            }));

            // no ftp settings
            new WebFtpCli(new AppSettings(), fakeSelectorStorage, console, _webRequestFactory)
            .Run(new [] { "-p", "/test" });

            Assert.IsTrue(console.WrittenLines.LastOrDefault().Contains("WebFtp settings"));
        }
Esempio n. 29
0
        public void GetNameConsole_UpdateConsoleInput()
        {
            var consoleWrapper = new FakeConsoleWrapper
            {
                LinesToRead = new List <string> {
                    "updated"
                }
            };

            var result = new PublishPreflight(_testAppSettings,
                                              consoleWrapper).GetNameConsole("/test", new List <string> ());

            Assert.AreEqual("updated", result);
        }
Esempio n. 30
0
        public void GetNameConsole_EnterDefaultOption()
        {
            var consoleWrapper = new FakeConsoleWrapper
            {
                LinesToRead = new List <string> {
                    string.Empty
                }
            };

            var result = new PublishPreflight(_testAppSettings,
                                              consoleWrapper).GetNameConsole("/test", new List <string> ());

            Assert.AreEqual("test", result);
        }