コード例 #1
0
        public void Sync_CheckInput_Socket()
        {
            var sync = new FakeISynchronize(new List <FileIndexItem>
            {
                new FileIndexItem("/test")
                {
                    Status = FileIndexItem.ExifStatus.Ok
                }
            });
            var websockets           = new FakeIWebSocketConnectionsService();
            var appSettings          = new AppSettings();
            var syncWatcherPreflight = new SyncWatcherConnector(new AppSettings(),
                                                                sync, websockets, new FakeIQuery(), new FakeIWebLogger(), new TelemetryClient(new TelemetryConfiguration()));

            syncWatcherPreflight.Sync(
                new Tuple <string, string, WatcherChangeTypes>(
                    Path.Combine(appSettings.StorageFolder, "test"), null, WatcherChangeTypes.Changed));

            Assert.AreEqual(1, websockets.FakeSendToAllAsync.Count(p => !p.StartsWith("[system]")));
            var value = websockets.FakeSendToAllAsync.FirstOrDefault(p =>
                                                                     !p.StartsWith("[system]"));

            Assert.IsTrue(value.Contains("filePath\":\"/test\""));
            Assert.AreEqual("/test", sync.Inputs[0].Item1);
        }
コード例 #2
0
        public async Task Sync_Disable_I_Param()
        {
            var fakeSync = new FakeISynchronize();

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

            Assert.AreEqual(0, fakeSync.Inputs.Count);
        }
コード例 #3
0
        public async Task Sync_NoArgs_Assume_DefaultCheck()
        {
            var fakeSync = new FakeISynchronize();

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

            Assert.AreEqual("/", fakeSync.Inputs[0].Item1);
        }
コード例 #4
0
        public async Task Sync_MinusP_FullPath()
        {
            var fakeSync    = new FakeISynchronize();
            var appSettings = new AppSettings();

            await new SyncCli(fakeSync, appSettings, new ConsoleWrapper(),
                              new FakeSelectorStorage()).Sync(
                new List <string> {
                "-p", Path.Combine(appSettings.StorageFolder, "test")
            }.ToArray());

            Assert.AreEqual("/test", fakeSync.Inputs[0].Item1);
        }
コード例 #5
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")));
        }
コード例 #6
0
        public async Task Sync_MinusS_SubPath()
        {
            var fakeSync    = new FakeISynchronize();
            var appSettings = new AppSettings();

            await new SyncCli(fakeSync, appSettings, new ConsoleWrapper(),
                              new FakeSelectorStorage()).Sync(
                new List <string> {
                "-s", "/test"
            }.ToArray());

            Assert.AreEqual("/test", fakeSync.Inputs[0].Item1);
        }
コード例 #7
0
        public async Task Sync_Rename_skipNull()
        {
            var sync                 = new FakeISynchronize();
            var appSettings          = new AppSettings();
            var syncWatcherPreflight = new SyncWatcherConnector(new AppSettings(), sync,
                                                                new FakeIWebSocketConnectionsService(), new FakeIQuery(),
                                                                new FakeIWebLogger(), new TelemetryClient(new TelemetryConfiguration()));
            var result = await syncWatcherPreflight.Sync(
                new Tuple <string, string, WatcherChangeTypes>(
                    Path.Combine(appSettings.StorageFolder, "test"), null, WatcherChangeTypes.Renamed));

            Assert.AreEqual("/test", sync.Inputs[0].Item1);
        }
コード例 #8
0
        public async Task Sync_MinusG_Relative()
        {
            var fakeSync    = new FakeISynchronize();
            var appSettings = new AppSettings();
            var syncCli     = new SyncCli(fakeSync, appSettings, new ConsoleWrapper(),
                                          new FakeSelectorStorage());
            await syncCli.Sync(
                new List <string> {
                "-g", "0"
            }.ToArray());

            var subPathRelative = new StructureService(new FakeIStorage(), appSettings.Structure)
                                  .ParseSubfolders(0);

            Assert.AreEqual(subPathRelative, fakeSync.Inputs[0].Item1);
        }
コード例 #9
0
        public async Task Sync_Rename()
        {
            var sync                 = new FakeISynchronize();
            var appSettings          = new AppSettings();
            var syncWatcherPreflight = new SyncWatcherConnector(new AppSettings(), sync,
                                                                new FakeIWebSocketConnectionsService(),
                                                                new FakeIQuery(), new FakeIWebLogger(), new TelemetryClient(new TelemetryConfiguration()));
            var result = await syncWatcherPreflight.Sync(
                new Tuple <string, string, WatcherChangeTypes>(
                    Path.Combine(appSettings.StorageFolder, "test"), Path.Combine(appSettings.StorageFolder, "test2"), WatcherChangeTypes.Renamed));

            Assert.AreEqual("/test", sync.Inputs[0].Item1);
            Assert.AreEqual("/test2", sync.Inputs[1].Item1);
            // result
            Assert.AreEqual("/test", result[0].FilePath);
            Assert.AreEqual(FileIndexItem.ExifStatus.NotFoundSourceMissing, result[0].Status);
        }
コード例 #10
0
        public void Sync_CheckInput_CheckIfCacheIsUpdated_ButIgnoreNotInIndexFile()
        {
            var sync = new FakeISynchronize(new List <FileIndexItem>
            {
                //    = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = > source is missing
                new FileIndexItem("/test.jpg")
                {
                    Status = FileIndexItem.ExifStatus.NotFoundSourceMissing
                }
            });
            var websockets  = new FakeIWebSocketConnectionsService();
            var appSettings = new AppSettings();

            var provider = new ServiceCollection()
                           .AddMemoryCache()
                           .BuildServiceProvider();
            var memoryCache = provider.GetService <IMemoryCache>();

            var builderDb = new DbContextOptionsBuilder <ApplicationDbContext>();

            builderDb.UseInMemoryDatabase(nameof(DownloadPhotoControllerTest));
            var options = builderDb.Options;
            var context = new ApplicationDbContext(options);

            var query = new Query(context, null, null, null, memoryCache);

            query.AddCacheParentItem("/",
                                     new List <FileIndexItem> {
                new FileIndexItem("/test.jpg")
                {
                    IsDirectory     = false,
                    Tags            = "This should not be the tags",
                    ParentDirectory = "/"
                }
            });

            var syncWatcherConnector = new SyncWatcherConnector(appSettings,
                                                                sync, websockets, query, new FakeIWebLogger(), new TelemetryClient(new TelemetryConfiguration()));

            syncWatcherConnector.Sync(
                new Tuple <string, string, WatcherChangeTypes>(
                    Path.Combine(appSettings.StorageFolder, "test.jpg"), null, WatcherChangeTypes.Changed));

            Assert.AreEqual(0, query.DisplayFileFolders().Count());
        }
コード例 #11
0
        public async Task Sync_NoArgs_ShouldNotSee_NotFound()
        {
            var fakeSync = new FakeISynchronize(new List <FileIndexItem> {
                new FileIndexItem("/")
            });
            var console = new FakeConsoleWrapper();

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

            var t = console.WrittenLines.Any(p => p.Contains("Not Found"));

            Assert.IsFalse(t);
        }
コード例 #12
0
        public void Sync_CheckInput_Socket_Ignore()
        {
            var sync = new FakeISynchronize(new List <FileIndexItem>
            {
                new FileIndexItem("/test")
                {
                    Status = FileIndexItem.ExifStatus.OperationNotSupported
                }
            });
            var websockets           = new FakeIWebSocketConnectionsService();
            var appSettings          = new AppSettings();
            var syncWatcherConnector = new SyncWatcherConnector(appSettings,
                                                                sync, websockets, new FakeIQuery(), new FakeIWebLogger(), new TelemetryClient(new TelemetryConfiguration()));

            syncWatcherConnector.Sync(
                new Tuple <string, string, WatcherChangeTypes>(
                    Path.Combine(appSettings.StorageFolder, "test"), null, WatcherChangeTypes.Changed));

            Assert.AreEqual(0, websockets.FakeSendToAllAsync.Count);
            Assert.AreEqual("/test", sync.Inputs[0].Item1);
        }