Пример #1
0
        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());
        }
Пример #2
0
 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)));
 }
Пример #3
0
        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);
        }
Пример #4
0
        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);
        }
Пример #5
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);
        }