public ReplaceServiceTest() { var provider = new ServiceCollection() .AddMemoryCache() .BuildServiceProvider(); var memoryCache = provider.GetService <IMemoryCache>(); var builder = new DbContextOptionsBuilder <ApplicationDbContext>(); builder.UseInMemoryDatabase(nameof(MetaReplaceService)); var options = builder.Options; var dbContext = new ApplicationDbContext(options); _query = new Query(dbContext, new AppSettings(), null, new FakeIWebLogger(), memoryCache); _iStorage = new FakeIStorage(new List <string> { "/" }, new List <string> { "/test.jpg", "/test2.jpg", "/readonly/test.jpg", "/test.dng" }); _metaReplace = new MetaReplaceService(_query, new AppSettings { ReadOnlyFolders = new List <string> { "/readonly" } }, new FakeSelectorStorage(_iStorage), new FakeIWebLogger()); }
public Task <List <FileIndexItem> > Replace(string f, string fieldName, string search, string replace, bool collections) { Data.Add(new FakeIMetaReplaceServiceData { f = f, fieldName = fieldName, search = search, replace = replace }); return(Task.FromResult(MetaReplaceService.SearchAndReplace( _input.Where(p => p.FilePath == f).ToList(), fieldName, search, replace))); }
public void SearchAndReplace_ReplaceDeletedTag_StatusDeleted() { var items = new List <FileIndexItem> { new FileIndexItem { Tags = "test, !delete!", Status = FileIndexItem.ExifStatus.Deleted } }; var result = MetaReplaceService.SearchAndReplace(items, "tags", "!delete!", ""); Assert.AreEqual("test", result.FirstOrDefault().Tags); }
public void SearchAndReplace_Nothing() { var result = MetaReplaceService.SearchAndReplace( new List <FileIndexItem> { new FileIndexItem("/test.jpg") { Status = FileIndexItem.ExifStatus.Ok } }, "tags", "test", string.Empty); Assert.AreEqual(string.Empty, result[0].Tags); }
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); }