예제 #1
0
        public async Task Replace_ChangedFileIndexItemNameContent()
        {
            var createAnImage = new CreateAnImage();

            InsertSearchData();
            var serviceScopeFactory = NewScopeFactory();

            var fakeIMetaUpdateService = _serviceProvider.GetService <IMetaUpdateService>() as
                                         FakeIMetaUpdateService;

            Assert.IsNotNull(fakeIMetaUpdateService);
            fakeIMetaUpdateService.ChangedFileIndexItemNameContent =
                new List <Dictionary <string, List <string> > >();

            var metaReplaceService = new FakeIMetaReplaceService(new List <FileIndexItem>
            {
                new FileIndexItem(createAnImage.DbPath)
                {
                    Tags   = "a",
                    Status = FileIndexItem.ExifStatus.Ok
                }
            });

            var controller = new MetaReplaceController(metaReplaceService, new FakeIUpdateBackgroundTaskQueue(),
                                                       new FakeIRealtimeConnectionsService(), new FakeIWebLogger(), serviceScopeFactory);

            var jsonResult = await controller.Replace(createAnImage.DbPath, "tags", "a", "b") as JsonResult;

            if (jsonResult == null)
            {
                Console.WriteLine("json should not be null");
                throw new NullReferenceException(nameof(jsonResult));
            }

            Assert.IsNotNull(fakeIMetaUpdateService);
            Assert.AreEqual(1, fakeIMetaUpdateService.ChangedFileIndexItemNameContent.Count);

            var actual = JsonSerializer.Serialize(
                fakeIMetaUpdateService.ChangedFileIndexItemNameContent[0],
                DefaultJsonSerializer.CamelCase);

            var expected = "{\"" + createAnImage.DbPath + "\":[\"tags\"]}";

            Assert.AreEqual(expected, actual);
        }
예제 #2
0
        public async Task Replace_ShouldTriggerBackgroundService_Ok()
        {
            var fakeFakeIWebSocketConnectionsService = new FakeIRealtimeConnectionsService();

            var metaReplaceService = new FakeIMetaReplaceService(new List <FileIndexItem>
            {
                new FileIndexItem("/test09.jpg")
                {
                    Status = FileIndexItem.ExifStatus.Ok
                }
            });
            var controller = new MetaReplaceController(metaReplaceService, _bgTaskQueue,
                                                       fakeFakeIWebSocketConnectionsService, new FakeIWebLogger(), NewScopeFactory());

            await controller.Replace("/test09.jpg", "tags", "test", "");

            Assert.AreEqual(1, fakeFakeIWebSocketConnectionsService.FakeSendToAllAsync.Count);
        }
예제 #3
0
        public async Task Replace_AllDataIncluded_WithFakeExifTool()
        {
            var item = await _query.AddItemAsync(new FileIndexItem
            {
                FileName        = "test09.jpg",
                ParentDirectory = "/",
                Tags            = "7test"
            });

            var selectorStorage = new FakeSelectorStorage(new FakeIStorage(new List <string> {
                "/"
            },
                                                                           new List <string> {
                "/test09.jpg"
            }));

            var metaReplaceService = new MetaReplaceService(_query, _appSettings, selectorStorage, new FakeIWebLogger());
            var controller         = new MetaReplaceController(metaReplaceService, _bgTaskQueue,
                                                               new FakeIRealtimeConnectionsService(), new FakeIWebLogger(), NewScopeFactory());

            var jsonResult = await controller.Replace("/test09.jpg", "Tags", "test",
                                                      string.Empty) as JsonResult;

            if (jsonResult == null)
            {
                throw new NullReferenceException(nameof(jsonResult));
            }
            var fileModel = jsonResult.Value as List <FileIndexItem>;

            if (fileModel == null)
            {
                throw new NullReferenceException(nameof(fileModel));
            }

            Assert.AreNotEqual(null, fileModel.FirstOrDefault()?.Tags);
            Assert.AreEqual("7", fileModel.FirstOrDefault()?.Tags);

            await _query.RemoveItemAsync(item);
        }