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