Exemplo n.º 1
0
        public async Task ImportPostBackgroundTask_NotFound_Logger_Contain1()
        {
            var services = new ServiceCollection();

            services.AddSingleton <ISelectorStorage, FakeSelectorStorage>();
            services.AddSingleton <IStorage, FakeIStorage>();
            services.AddSingleton <AppSettings>();
            services.AddSingleton <IImportQuery, FakeIImportQuery>();
            services.AddSingleton <IExifTool, FakeExifTool>();
            services.AddSingleton <IQuery, FakeIQuery>();
            services.AddSingleton <IImport, FakeIImport>();
            services.AddSingleton <IConsole, FakeConsoleWrapper>();
            services.AddSingleton <IMetaExifThumbnailService, FakeIMetaExifThumbnailService>();
            services.AddMemoryCache();

            var serviceProvider = services.BuildServiceProvider();
            var scopeFactory    = serviceProvider.GetRequiredService <IServiceScopeFactory>();

            var logger           = new FakeIWebLogger();
            var importController = new ImportController(null, new AppSettings(),
                                                        null, null, new FakeSelectorStorage(),
                                                        scopeFactory, logger);

            await importController.ImportPostBackgroundTask(
                new List <string> {
                "/test"
            }, new ImportSettingsModel(), true);

            Assert.AreEqual(1, logger.TrackedInformation.Count);
        }
Exemplo n.º 2
0
        public void ExecuteAsyncTest()
        {
            var logger  = new FakeIWebLogger();
            var service = new DiskWatcherQueuedHostedService(
                new FakeDiskWatcherUpdateBackgroundTaskQueue(),
                logger);

            CancellationTokenSource source = new CancellationTokenSource();
            CancellationToken       token  = source.Token;

            source.Cancel();             // <- cancel before start

            MethodInfo dynMethod = service.GetType().GetMethod("ExecuteAsync",
                                                               BindingFlags.NonPublic | BindingFlags.Instance);

            if (dynMethod == null)
            {
                throw new Exception("missing ExecuteAsync");
            }
            dynMethod.Invoke(service, new object[]
            {
                token
            });
            Assert.IsTrue(logger.TrackedInformation.LastOrDefault().Item2.Contains("Queued Hosted Service"));
        }
Exemplo n.º 3
0
        public async Task DownloadExifTool_Windows_existVerbose()
        {
            var appSettings = new AppSettings {
                TempFolder = AppDomain.CurrentDomain.BaseDirectory,
                Verbose    = true
            };

            Directory.CreateDirectory(appSettings.TempFolder);
            Directory.CreateDirectory(Path.Combine(appSettings.TempFolder, "exiftool-windows"));

            var stream = new PlainTextFileHelper().StringToStream("#!/bin/bash");

            await new StorageHostFullPathFilesystem().WriteStreamAsync(stream,
                                                                       Path.Combine(appSettings.TempFolder, "exiftool-windows", "exiftool.exe"));

            var httpClientHelper = new HttpClientHelper(new FakeIHttpProvider(), _serviceScopeFactory, new FakeIWebLogger());
            var logger           = new FakeIWebLogger();

            var result = await new ExifToolDownload(httpClientHelper, appSettings, logger).DownloadExifTool(true);

            Assert.IsTrue(result);
            Assert.IsTrue(logger.TrackedInformation.FirstOrDefault().Item2
                          .Contains("[DownloadExifTool] " + appSettings.TempFolder));

            Directory.Delete(Path.Combine(appSettings.TempFolder, "exiftool-windows"), true);
        }
 public async Task GetObjectsByFilePathQueryAsyncTest_NullReferenceException()
 {
     var logger    = new FakeIWebLogger();
     var fakeQuery = new Query(null,
                               null, null, logger, null);
     await fakeQuery.GetObjectsByFilePathQueryAsync(new List <string> {
         "test"
     });
 }
Exemplo n.º 5
0
        public NotificationQueryTest()
        {
            var serviceScope = CreateNewScope();
            var scope        = serviceScope.CreateScope();

            _dbContext         = scope.ServiceProvider.GetRequiredService <ApplicationDbContext>();
            _logger            = new FakeIWebLogger();
            _notificationQuery = new NotificationQuery(_dbContext, new FakeIWebLogger());
        }
Exemplo n.º 6
0
        public async Task AddMetaThumbnail_Fake_IEnumerableString_NotFound()
        {
            var selectorStorage = new FakeSelectorStorage(_iStorageFake);
            var logger          = new FakeIWebLogger();

            var result = await new MetaExifThumbnailService(new AppSettings(), selectorStorage,
                                                            new FakeIOffsetDataMetaExifThumbnail(), new FakeIWriteMetaThumbnailService(), logger)
                         .AddMetaThumbnail(new List <(string, string)> {
                ("/not_found.jpg", "hash")
            });
        public void GetTelemetryClientTestIgnore()
        {
            var logger = new FakeIWebLogger();

            new FlushApplicationInsights(new ServiceCollection()
                                         .BuildServiceProvider(), new AppSettings {
                ApplicationInsightsInstrumentationKey = ""
            }, logger).GetTelemetryClient();
            Assert.AreEqual(0, logger.TrackedInformation.Count);
        }
Exemplo n.º 8
0
        public async Task AddMetaThumbnail_Fake_SingleString_NotFound()
        {
            var selectorStorage = new FakeSelectorStorage(_iStorageFake);
            var logger          = new FakeIWebLogger();

            var result = await new MetaExifThumbnailService(new AppSettings(), selectorStorage,
                                                            new FakeIOffsetDataMetaExifThumbnail(), new FakeIWriteMetaThumbnailService(), logger)
                         .AddMetaThumbnail("/not_found.jpg");

            Assert.IsFalse(result);
        }
        public void FlushApplicationInsights_HitLogger_Sync()
        {
            var logger = new FakeIWebLogger();

            new FlushApplicationInsights(new ServiceCollection()
                                         .BuildServiceProvider(), new AppSettings {
                ApplicationInsightsInstrumentationKey = "t"
            }, logger).Flush();
            Assert.AreEqual(1, logger.TrackedInformation.Count);
            Assert.AreEqual("TelemetryClient is null on exit", logger.TrackedInformation[0].Item2);
        }
Exemplo n.º 10
0
        public QueryTestNoCacheTest()
        {
            var builder = new DbContextOptionsBuilder <ApplicationDbContext>();

            builder.UseInMemoryDatabase("QueryTestNoCacheTest");
            var options = builder.Options;
            var context = new ApplicationDbContext(options);

            _logger = new FakeIWebLogger();
            _query  = new Query(context, new AppSettings(), null, _logger);
        }
Exemplo n.º 11
0
        public async Task NoThumbnail_InMemoryIntegration()
        {
            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("/no_thumbnail.jpg", "anything");

            Assert.IsFalse(result);
        }
        public async Task SendToAllAsync_ExceptionDueNoContent()
        {
            var logger     = new FakeIWebLogger();
            var service    = new WebSocketConnectionsService(logger);
            var fakeSocket = new FakeWebSocket();

            service.AddConnection(new WebSocketConnection(fakeSocket));

            await service.SendToAllAsync(null as string, CancellationToken.None);

            Assert.AreEqual(1, logger.TrackedInformation.Count);
        }
Exemplo n.º 13
0
        public void BuilderDb_console()
        {
            var console     = new FakeIWebLogger();
            var appSettings = new AppSettings {
                Verbose = true, DatabaseType = AppSettings.DatabaseTypeList.InMemoryDatabase
            };
            var services = new ServiceCollection();

            new SetupDatabaseTypes(appSettings, services, console).BuilderDb();

            Assert.IsTrue(console.TrackedInformation[0].Item2.Contains("Database connection:"));
        }
Exemplo n.º 14
0
        public async Task AddMetaThumbnail_stringString_Fake_NoHashIncluded()
        {
            var selectorStorage = new FakeSelectorStorage(_iStorageFake);
            var logger          = new FakeIWebLogger();


            var result = await new MetaExifThumbnailService(new AppSettings(), selectorStorage,
                                                            new FakeIOffsetDataMetaExifThumbnail(), new FakeIWriteMetaThumbnailService(), logger)
                         .AddMetaThumbnail("/poppy.jpg", null);

            Assert.IsTrue(result);
        }
Exemplo n.º 15
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"));
        }
Exemplo n.º 16
0
        public void EnableDatabaseTracking_shouldDisable()
        {
            var console     = new FakeIWebLogger();
            var appSettings = new AppSettings {
                Verbose      = true,
                DatabaseType = AppSettings.DatabaseTypeList.InMemoryDatabase,
                ApplicationInsightsInstrumentationKey = string.Empty,                 // <-- No Key
                ApplicationInsightsDatabaseTracking   = true
            };
            var services = new ServiceCollection();
            var result   = new SetupDatabaseTypes(appSettings, services, console).EnableDatabaseTracking(null);

            Assert.IsFalse(result);
        }
Exemplo n.º 17
0
        public async Task DownloadExifTool_Skip_AddSwaggerExportExitAfter()
        {
            var httpClientHelper = new HttpClientHelper(new FakeIHttpProvider(), _serviceScopeFactory, new FakeIWebLogger());

            var appSettings = new AppSettings
            {
                AddSwaggerExport          = true,
                AddSwaggerExportExitAfter = true
            };
            var logger = new FakeIWebLogger();
            var result = await new ExifToolDownload(httpClientHelper, appSettings, logger).DownloadExifTool(true);

            Assert.IsFalse(result);
            Assert.IsTrue(logger.TrackedInformation[0].Item2.Contains("Skipped due AddSwaggerExportExitAfter setting"));
        }
Exemplo n.º 18
0
        public async Task WorkItem_TestFailing()
        {
            var message = "[ThumbnailGenerationController] reading not allowed";

            var storage         = new FakeIStorage(new UnauthorizedAccessException(message));
            var selectorStorage = new FakeSelectorStorage(storage);

            var webLogger  = new FakeIWebLogger();
            var controller = new ThumbnailGenerationController(selectorStorage, new FakeIQuery(),
                                                               webLogger, new FakeIWebSocketConnectionsService());

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

            Assert.IsTrue(webLogger.TrackedExceptions.FirstOrDefault().Item2.Contains(message));
        }
Exemplo n.º 19
0
        public async Task StartAsync_CancelBeforeStart()
        {
            var fakeLogger = new FakeIWebLogger();
            var service    = new UpdateBackgroundQueuedHostedService(new FakeIUpdateBackgroundTaskQueue(), fakeLogger);

            var cancelTokenSource = new CancellationTokenSource();

            cancelTokenSource.Cancel();

            // use reflection to hit protected method
            var method = service.GetType().GetTypeInfo().GetDeclaredMethod("ExecuteAsync");

            Assert.IsNotNull(method);
            method.Invoke(service, new object[] { cancelTokenSource.Token });
            // should stop and not hit timeout
        }
Exemplo n.º 20
0
        public void EnableDatabaseTracking_shouldEnable()
        {
            var console     = new FakeIWebLogger();
            var appSettings = new AppSettings {
                Verbose      = true,
                DatabaseType = AppSettings.DatabaseTypeList.InMemoryDatabase,
                ApplicationInsightsInstrumentationKey = "any",
                ApplicationInsightsDatabaseTracking   = true
            };
            var services = new ServiceCollection();

            var memoryDatabase = new DbContextOptionsBuilder <ApplicationDbContext>()
                                 .UseInMemoryDatabase("test123");
            var result = new SetupDatabaseTypes(appSettings, services, console).EnableDatabaseTracking(memoryDatabase);

            Assert.IsTrue(result);
        }
        public void GetAllFilesInDirectoryRecursive_NotFound()
        {
            var logger      = new FakeIWebLogger();
            var realStorage = new StorageHostFullPathFilesystem(logger);
            var directories = realStorage.GetAllFilesInDirectoryRecursive("NOT:\\t");

            if (new AppSettings().IsWindows)
            {
                Assert.IsTrue(logger.TrackedInformation.LastOrDefault().Item2.Contains("The filename, directory name, or volume label syntax is incorrect"));
            }
            else
            {
                Assert.IsTrue(logger.TrackedInformation.LastOrDefault().Item2.Contains("Could not find a part of the path"));
            }

            Assert.AreEqual(directories.Count(), 0);
        }
Exemplo n.º 22
0
    public CleanUpConnectionBackgroundServiceTest()
    {
        var services = new ServiceCollection();

        services.AddSingleton <AppSettings>();
        services.AddSingleton <BackgroundService, CleanUpConnectionBackgroundService>();
        services.AddSingleton <IRealtimeConnectionsService, FakeIRealtimeConnectionsService>();
        services.AddSingleton <IWebLogger, FakeIWebLogger>();

        var serviceProvider = services.BuildServiceProvider();

        _serviceScopeFactory        = serviceProvider.GetRequiredService <IServiceScopeFactory>();
        _realtimeConnectionsService = serviceProvider.GetRequiredService <IRealtimeConnectionsService>();

        var webLogger = serviceProvider.GetRequiredService <IWebLogger>();

        _console = webLogger as FakeIWebLogger;
    }
Exemplo n.º 23
0
        public async Task SearchSuggestionsService_MySqlError()
        {
            var provider = new ServiceCollection()
                           .AddMemoryCache()
                           .BuildServiceProvider();

            var builder = new DbContextOptionsBuilder <ApplicationDbContext>();

            builder.UseMySql("Server=test;database=test;uid=test;pwd=test;", new MariaDbServerVersion("10.2"));
            var options    = builder.Options;
            var dbContext  = new ApplicationDbContext(options);
            var fakeLogger = new FakeIWebLogger();
            var suggest    = new SearchSuggestionsService(dbContext, _memoryCache, fakeLogger, new AppSettings());

            await suggest.Inflate();

            Assert.AreEqual("mysql search suggest exception catch-ed", fakeLogger.TrackedExceptions.LastOrDefault().Item2);
        }
Exemplo n.º 24
0
        public async Task DownloadExifTool_Unix_existVerbose()
        {
            if (_appSettings.IsWindows)
            {
                Console.WriteLine("This test is for unix only");
                return;
            }

            var appSettings = await CreateTempFolderWithExifTool("test32");

            appSettings.Verbose = true;
            var httpClientHelper = new HttpClientHelper(new FakeIHttpProvider(), _serviceScopeFactory, new FakeIWebLogger());
            var logger           = new FakeIWebLogger();
            var result           = await new ExifToolDownload(httpClientHelper, appSettings, logger).DownloadExifTool(false);

            Assert.IsTrue(result);
            Assert.IsTrue(logger.TrackedInformation.FirstOrDefault().Item2
                          .Contains("[DownloadExifTool] " + appSettings.TempFolder));

            Directory.Delete(appSettings.TempFolder, true);
        }
Exemplo n.º 25
0
        public async Task PostString_HttpClientHelper_VerboseFalse()
        {
            var fakeHttpMessageHandler = new FakeHttpMessageHandler();
            var httpClient             = new HttpClient(fakeHttpMessageHandler);
            var httpProvider           = new HttpProvider(httpClient);

            var services = new ServiceCollection();

            services.AddSingleton <IStorage, FakeIStorage>();
            services.AddSingleton <ISelectorStorage, FakeSelectorStorage>();
            var serviceProvider = services.BuildServiceProvider();
            var scopeFactory    = serviceProvider.GetRequiredService <IServiceScopeFactory>();

            var fakeLogger       = new FakeIWebLogger();
            var httpClientHelper = new HttpClientHelper(httpProvider, scopeFactory, fakeLogger);

            await httpClientHelper
            .PostString("https://qdraw.nl/test", new StringContent(string.Empty), false);

            Assert.IsFalse(fakeLogger.TrackedInformation.Any(p => p.Item2.Contains("PostString")));
            Assert.IsFalse(fakeLogger.TrackedInformation.Any(p => p.Item2.Contains("HttpClientHelper")));
        }
Exemplo n.º 26
0
        public async Task SingleFile_RecentlyTriggered()
        {
            var logger = new FakeIWebLogger();
            var sync   = new SyncSingleFile(new AppSettings(), new FakeIQuery(new List <FileIndexItem>
            {
                new FileIndexItem("/from-cache.jpg")
                {
                    Status = FileIndexItem.ExifStatus.OkAndSame
                }
            }),
                                            new FakeIStorage(new List <string> {
                "/"
            },
                                                             new List <string> {
                "/from-cache.jpg"
            },
                                                             new List <byte[]> {
                CreateAnImageNoExif.Bytes
            }), logger);

            await sync.SingleFile("/from-cache.jpg");

            Assert.IsTrue(logger.TrackedDebug.LastOrDefault().Item2.Contains("OkAndSame"));
        }