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);
        }
        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);
        }