public void GetParametersTest() { List <string> names = new List <string>() { "Test" }; List <TypeParameter> listParameters = new List <TypeParameter>() { new TypeParameter() { Name = "Path", Type = "string" } }; var mockImporter = new Mock <IImporterLogic>(MockBehavior.Strict); mockImporter.Setup(p => p.GetParameters(It.IsAny <string>())).Returns(listParameters); var controller = new ImportController(mockImporter.Object); controller.GetParameters("Test"); mockImporter.VerifyAll(); }
public void UploadTest() { var controller = new ImportController <Client, ImportAppStatusRow>(); var tempPath = System.IO.Path.GetTempPath(); controller.UploadsDir = tempPath; var postedFile = new Moq.Mock <HttpPostedFileBase>(); var len = 1000; var content = new byte[len]; var rnd = new Random(); rnd.NextBytes(content); System.IO.MemoryStream ms = new System.IO.MemoryStream(content); postedFile.Setup(f => f.InputStream).Returns(ms); postedFile.Setup(f => f.SaveAs(Moq.It.IsAny <string>())).Verifiable(); var result = controller.Upload(postedFile.Object); var redirect = result as RedirectToRouteResult; Assert.IsTrue(redirect != null); var id = (Guid)redirect.RouteValues["id"]; var action = (string)redirect.RouteValues["action"]; Assert.IsTrue(!string.IsNullOrEmpty(action)); Assert.IsTrue(action.ToLower() == "Preview".ToLower()); postedFile.Verify(f => f.SaveAs(Moq.It.IsAny <string>())); }
public async Task ImportStream(string aggregateType, long recordCount) { var moqRepo = new Mock <IRebalanceRepository>(); moqRepo.Setup((lst, id) => { Assert.Equal(recordCount, lst.Count); return(Task.FromResult(recordCount)); }); using var modelContent = new MultipartContent("mixed", "++++++++"); using var templateStream = await $"{aggregateType}.xml".AsStreamContent(); using var dataStream = await $"{aggregateType}.txt".AsStreamContent(); modelContent.AddContent( aggregateType, templateStream, dataStream); var section = new MultipartSection { Body = await modelContent.ReadAsStreamAsync() }; var sut = new ImportController(_loggerFactory.CreateLogger <ImportController>(), moqRepo.Object); await sut.ImportStream(section); }
public void IndexPostReturnsCorrectImportError_WhenNoFileIsUploaded() { var sut = new ImportController(null, null, null); var result = (IndexViewModel)((ViewResult)sut.Index(new IndexViewModel())).Model; Assert.True(result.ImportErrors.Contains("please select a file to upload.")); }
public static void BackupAndTruncate() { var importController = new ImportController(); /**@TODO rewrite wo filepath**/ importController.BackupAndTruncate(Constants.LiImportFilePath_edit); }
public void IndexPostReturnsCorrectImportError_WhenThereAreValidationErrors() { var importRequestViewModels = new List <ImportRequestViewModel> { new ImportRequestViewModel { Id = "Id", Name = null, Address = string.Empty, Email = "InvalidEmail" } }; var iFormFile = new Mock <IFormFile>(); var csvFactory = new Mock <ICsvFactory>(); var csvReader = new Mock <ICsvReader>(); var mediator = new Mock <IMediator>(); iFormFile.Setup(x => x.OpenReadStream()).Returns(new MemoryStream()); csvFactory.Setup(x => x.CreateReader(It.IsAny <TextReader>())).Returns(csvReader.Object); csvReader.Setup(x => x.Configuration).Returns(new CsvConfiguration()); csvReader.Setup(x => x.GetRecords <ImportRequestViewModel>()).Returns(importRequestViewModels); mediator.Setup(x => x.Send(It.IsAny <DuplicateProviderRequestIdsQuery>())).Returns(new List <string>()); var sut = new ImportController(mediator.Object, null, csvFactory.Object); var viewResult = sut.Index(new IndexViewModel { EventId = 1, File = iFormFile.Object }) as ViewResult; var result = viewResult.Model as IndexViewModel; Assert.Equal(result.ValidationErrors[0].ProviderRequestId, importRequestViewModels[0].Id); Assert.Equal(result.ValidationErrors[0].Errors[0].ErrorMessage, "The Name field is required."); Assert.Equal(result.ValidationErrors[0].Errors[1].ErrorMessage, "The Address field is required."); Assert.Equal(result.ValidationErrors[0].Errors[2].ErrorMessage, "The City field is required."); Assert.Equal(result.ValidationErrors[0].Errors[3].ErrorMessage, "The State field is required."); Assert.Equal(result.ValidationErrors[0].Errors[4].ErrorMessage, "The Zip field is required."); Assert.Equal(result.ValidationErrors[0].Errors[5].ErrorMessage, "The Phone field is required."); Assert.Equal(result.ValidationErrors[0].Errors[6].ErrorMessage, "Invalid Email Address"); }
public void IndexPostHasValidateAntiForgeryTokenAttribute() { var sut = new ImportController(null, null, null); var attribute = sut.GetAttributesOn(x => x.Index(It.IsAny <IndexViewModel>())).OfType <ValidateAntiForgeryTokenAttribute>().SingleOrDefault(); Assert.NotNull(attribute); }
public async Task IndexPostReturnsCorrectImportError_WhenThereAreDuplicateProviderRequestIdsFound() { const string duplicateId = "id"; var duplicateIds = new List <string> { duplicateId }; var importRequestViewModels = new List <ImportRequestViewModel> { new ImportRequestViewModel { Id = duplicateId } }; Mock <IFormFile> iFormFile; Mock <ICsvFactory> csvFactory; Mock <ICsvReader> csvReader; CreateMockAndSetupIFormFileCsvFactoryAndCsvReader(out iFormFile, out csvFactory, out csvReader); csvReader.Setup(x => x.GetRecords <ImportRequestViewModel>()).Returns(importRequestViewModels); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <DuplicateProviderRequestIdsQuery>())).Returns(duplicateIds); var sut = new ImportController(mediator.Object, null, csvFactory.Object); var result = (IndexViewModel)((ViewResult)await sut.Index(new IndexViewModel { EventId = 1, File = iFormFile.Object })).Model; Assert.Contains($"These id's already exist in the system. Please remove them from the CSV and try again: {string.Join(", ", duplicateIds)}", result.ImportErrors); }
public async Task IndexPostSendsValidatePhoneNumberRequestComamndWithCorrectData() { const string id = "id"; var importRequestViewModels = new List <ImportRequestViewModel> { new ImportRequestViewModel { Id = id } }; Mock <IFormFile> iFormFile; Mock <ICsvFactory> csvFactory; Mock <ICsvReader> csvReader; CreateMockAndSetupIFormFileCsvFactoryAndCsvReader(out iFormFile, out csvFactory, out csvReader); csvReader.Setup(x => x.GetRecords <ImportRequestViewModel>()).Returns(importRequestViewModels); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <DuplicateProviderRequestIdsQuery>())).Returns(new List <string>()); mediator.Setup(x => x.SendAsync(It.IsAny <ValidatePhoneNumberRequestCommand>())).ReturnsAsync(new ValidatePhoneNumberResult { IsValid = true, PhoneNumberE164 = importRequestViewModels[0].Phone }); var sut = new ImportController(mediator.Object, null, csvFactory.Object); await sut.Index(new IndexViewModel { EventId = 1, File = iFormFile.Object }); mediator.Verify(x => x.SendAsync(It.Is <ValidatePhoneNumberRequestCommand>(y => y.PhoneNumber == importRequestViewModels[0].Phone && y.ValidateType))); }
private static void InitData() { Console.WriteLine("***************************"); Console.WriteLine(" Import"); Console.WriteLine("***************************"); Console.WriteLine("Import der Movies und Categories in die Datenbank"); using (UnitOfWork unitOfWork = new UnitOfWork()) { Console.WriteLine("Datenbank löschen"); //TODO: Datenbank löschen Console.WriteLine("Datenbank migrieren"); //TODO: Migrationen anstoßen Console.WriteLine("Movies/Categories werden eingelesen"); var movies = ImportController.ReadFromCsv().ToArray(); if (movies.Length == 0) { Console.WriteLine("!!! Es wurden keine Movies eingelesen"); return; } var categories = Enumerable.Empty <Movie>(); //TODO: Kategorien ermitteln Console.WriteLine($" Es wurden {movies.Count()} Movies in {categories.Count()} Kategorien eingelesen!"); //TODO: Movies und Kategorien in die Datenbank schreiben Console.WriteLine(); } }
public ImpStatusService() { _impCtrlSettings = ImportControlSetting.GetSettings(); _impController = new ImportController(_impCtrlSettings); _impController.StatusChanged += Log; ShowSettingImpCtrl(); }
protected override async void Up(MigrationBuilder migrationBuilder) { Console.WriteLine("Before inserting"); var movies = await ImportController.ReadFromCsvAsync(); var categoryNames = movies .Select(m => m.Category.CategoryName) .Distinct() .ToList(); foreach (var name in categoryNames) { migrationBuilder.InsertData( table: "Categories", column: "CategoryName", value: name); } foreach (var movie in movies) { var index = movie.Title.IndexOf("'"); var title = index != -1 ? movie.Title.Insert(index, "'") : movie.Title; string sql = ("insert into Movies (Duration, CategoryId, Year, Title) " + "values (" + movie.Duration + "," + " (select Id from Categories where CategoryName = '" + movie.Category.CategoryName + "'), " + movie.Year + ", '" + title + "')"); migrationBuilder.Sql(sql); } Console.WriteLine("After inserting"); }
private void button_ChoisirUnFichier_Click(object sender, EventArgs e) { ImportController ImportController = new ImportController(); FilePath = ImportController.ChooseFile(); label_FichierImporte.Text = "FileName: " + System.IO.Path.GetFileName(FilePath); }
public void Setup() { _service = new Mock <IImportService>(); _controller = new ImportController(_service.Object); _controller.AddControllerContext(_user); }
public void IndexPostSendsDuplicateProviderRequestIdsQueryWithCorrectProviderRequestIds() { const string id = "id"; var importRequestViewModels = new List <ImportRequestViewModel> { new ImportRequestViewModel { Id = id } }; var iFormFile = new Mock <IFormFile>(); var csvFactory = new Mock <ICsvFactory>(); var csvReader = new Mock <ICsvReader>(); var mediator = new Mock <IMediator>(); iFormFile.Setup(x => x.OpenReadStream()).Returns(new MemoryStream()); csvFactory.Setup(x => x.CreateReader(It.IsAny <TextReader>())).Returns(csvReader.Object); csvReader.Setup(x => x.Configuration).Returns(new CsvConfiguration()); csvReader.Setup(x => x.GetRecords <ImportRequestViewModel>()).Returns(importRequestViewModels); mediator.Setup(x => x.Send(It.IsAny <DuplicateProviderRequestIdsQuery>())).Returns(new List <string>()); var sut = new ImportController(mediator.Object, null, csvFactory.Object); sut.Index(new IndexViewModel { EventId = 1, File = iFormFile.Object }); mediator.Verify(x => x.Send(It.Is <DuplicateProviderRequestIdsQuery>(y => y.ProviderRequestIds[0] == id)), Times.Once); }
public async Task IndexPostReturnsCorrectImportError_WhenPhoneNumbersAreInvalid() { var importRequestViewModels = new List <ImportRequestViewModel> { new ImportRequestViewModel { Id = "Id", Phone = "InvalidPhoneNumber" } }; Mock <IFormFile> iFormFile; Mock <ICsvFactory> csvFactory; Mock <ICsvReader> csvReader; CreateMockAndSetupIFormFileCsvFactoryAndCsvReader(out iFormFile, out csvFactory, out csvReader); csvReader.Setup(x => x.GetRecords <ImportRequestViewModel>()).Returns(importRequestViewModels); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <DuplicateProviderRequestIdsQuery>())).Returns(new List <string>()); mediator.Setup(x => x.SendAsync(It.IsAny <ValidatePhoneNumberRequestCommand>())).ReturnsAsync(new ValidatePhoneNumberResult { IsValid = false, PhoneNumberE164 = null }); var sut = new ImportController(mediator.Object, null, csvFactory.Object); var viewResult = await sut.Index(new IndexViewModel { EventId = 1, File = iFormFile.Object }) as ViewResult; var result = viewResult.Model as IndexViewModel; Assert.Equal(result.ImportErrors[0], $"These phone numbers are not valid mobile numbers: {importRequestViewModels[0].Phone}"); }
public void IndexPostReturnsCorrectImportError_WhenThereAreDuplicateProviderRequestIdsFound() { const string duplicateId = "id"; var duplicateIds = new List <string> { duplicateId }; var importRequestViewModels = new List <ImportRequestViewModel> { new ImportRequestViewModel { Id = duplicateId } }; var iFormFile = new Mock <IFormFile>(); var csvFactory = new Mock <ICsvFactory>(); var csvReader = new Mock <ICsvReader>(); var mediator = new Mock <IMediator>(); iFormFile.Setup(x => x.OpenReadStream()).Returns(new MemoryStream()); csvFactory.Setup(x => x.CreateReader(It.IsAny <TextReader>())).Returns(csvReader.Object); csvReader.Setup(x => x.Configuration).Returns(new CsvConfiguration()); csvReader.Setup(x => x.GetRecords <ImportRequestViewModel>()).Returns(importRequestViewModels); mediator.Setup(x => x.Send(It.IsAny <DuplicateProviderRequestIdsQuery>())).Returns(duplicateIds); var sut = new ImportController(mediator.Object, null, csvFactory.Object); var result = (IndexViewModel)((ViewResult)sut.Index(new IndexViewModel { EventId = 1, File = iFormFile.Object })).Model; Assert.True(result.ImportErrors.Contains($"These id's already exist in the system. Please remove them from the CSV and try again: {string.Join(", ", duplicateIds)}")); }
public async Task IndexPostAssignsImportSuccessToTrue_WhenImportSucceeds() { var importRequestViewModels = new List <ImportRequestViewModel> { new ImportRequestViewModel { Id = "Id", Name = "Name", Address = "Address", City = "City", Email = "*****@*****.**", Phone = "111-111-1111", State = "State", PostalCode = "PostalCode" } }; Mock <IFormFile> iFormFile; Mock <ICsvFactory> csvFactory; Mock <ICsvReader> csvReader; CreateMockAndSetupIFormFileCsvFactoryAndCsvReader(out iFormFile, out csvFactory, out csvReader); iFormFile.Setup(x => x.Name).Returns(It.IsAny <string>()); csvReader.Setup(x => x.GetRecords <ImportRequestViewModel>()).Returns(importRequestViewModels); var mediator = new Mock <IMediator>(); mediator.Setup(x => x.Send(It.IsAny <DuplicateProviderRequestIdsQuery>())).Returns(new List <string>()); mediator.Setup(x => x.SendAsync(It.IsAny <ValidatePhoneNumberRequestCommand>())).ReturnsAsync(new ValidatePhoneNumberResult { IsValid = true, PhoneNumberE164 = importRequestViewModels[0].Phone }); var sut = new ImportController(mediator.Object, Mock.Of <ILogger <ImportController> >(), csvFactory.Object); sut.SetFakeUserName("UserName"); var result = (IndexViewModel)((ViewResult)await sut.Index(new IndexViewModel { EventId = 1, File = iFormFile.Object })).Model; Assert.True(result.ImportSuccess); }
public void IndexPostAssignsImportSuccessToTrue_WhenImportSucceeds() { var importRequestViewModels = new List <ImportRequestViewModel> { new ImportRequestViewModel { Id = "Id", Name = "Name", Address = "Address", City = "City", Email = "*****@*****.**", Phone = "111-111-1111", State = "State", Zip = "Zip" } }; var iFormFile = new Mock <IFormFile>(); var csvFactory = new Mock <ICsvFactory>(); var csvReader = new Mock <ICsvReader>(); var mediator = new Mock <IMediator>(); iFormFile.Setup(x => x.OpenReadStream()).Returns(new MemoryStream()); iFormFile.Setup(x => x.Name).Returns(It.IsAny <string>()); csvFactory.Setup(x => x.CreateReader(It.IsAny <TextReader>())).Returns(csvReader.Object); csvReader.Setup(x => x.Configuration).Returns(new CsvConfiguration()); csvReader.Setup(x => x.GetRecords <ImportRequestViewModel>()).Returns(importRequestViewModels); mediator.Setup(x => x.Send(It.IsAny <DuplicateProviderRequestIdsQuery>())).Returns(new List <string>()); var sut = new ImportController(mediator.Object, Mock.Of <ILogger <ImportController> >(), csvFactory.Object); sut.SetFakeUserName("UserName"); var result = (IndexViewModel)((ViewResult)sut.Index(new IndexViewModel { EventId = 1, File = iFormFile.Object })).Model; Assert.True(result.ImportSuccess); }
public async Task IndexPostReturnsCorrectImportError_WhenEventIsNotPicked() { var sut = new ImportController(null, null, null); var result = (IndexViewModel)((ViewResult)await sut.Index(new IndexViewModel())).Model; Assert.Contains("please select an Event.", result.ImportErrors); }
public void IndexPostReturnsCorrectImportError_WhenEventIsNotPicked() { var sut = new ImportController(null, null, null); var result = (IndexViewModel)((ViewResult)sut.Index(new IndexViewModel())).Model; Assert.True(result.ImportErrors.Contains("please select an Event.")); }
private static void InitData() { Console.WriteLine("***************************"); Console.WriteLine(" Import"); Console.WriteLine("***************************"); Console.WriteLine("Import der Movies und Categories in die Datenbank"); using (UnitOfWork unitOfWork = new UnitOfWork()) { Console.WriteLine("Datenbank löschen"); unitOfWork.DeleteDatabase(); Console.WriteLine("Datenbank migrieren"); unitOfWork.MigrateDatabase(); Console.WriteLine("Movies/Categories werden eingelesen"); var movies = ImportController.ReadFromCsv().ToArray(); if (movies.Length == 0) { Console.WriteLine("!!! Es wurden keine Movies eingelesen"); return; } var categories = movies .Select(m => m.Category) .Distinct() .OrderBy(c => c.CategoryName); Console.WriteLine($" Es wurden {movies.Count()} Movies in {categories.Count()} Kategorien eingelesen!"); unitOfWork.MovieRepository.AddRange(movies); unitOfWork.SaveChanges(); Console.WriteLine(); } }
public void IndexGetReturnsCorrectView() { var sut = new ImportController(null, null); var result = sut.Index() as ViewResult; Assert.Null(result.ViewName); }
public async Task Import_Thumbnail_WrongInputName() { var services = new ServiceCollection(); services.AddSingleton <IStorage, FakeIStorage>(); services.AddSingleton <ISelectorStorage, FakeSelectorStorage>(); var serviceProvider = services.BuildServiceProvider(); var storageProvider = serviceProvider.GetRequiredService <IStorage>(); var importController = new ImportController( new FakeIImport(new FakeSelectorStorage(storageProvider)), _appSettings, _bgTaskQueue, null, new FakeSelectorStorage(storageProvider), _scopeFactory, new FakeIWebLogger()) { ControllerContext = RequestWithFile(), }; importController.Request.Headers["filename"] = "123.jpg"; // len() 3 var actionResult = await importController.Thumbnail() as JsonResult; var list = actionResult.Value as List <string>; Assert.AreEqual(0, list.Count); }
public async Task IndexPostLogsCorrectMessage_WhenImportSucceeds() { const string userName = "******"; const string fileName = "FileName"; var importRequestViewModels = new List <ImportRequestViewModel> { new ImportRequestViewModel { Id = "Id", Name = "Name", Address = "Address", City = "City", Email = "*****@*****.**", Phone = "111-111-1111", State = "State", Zip = "Zip" } }; var iFormFile = new Mock <IFormFile>(); var csvFactory = new Mock <ICsvFactory>(); var csvReader = new Mock <ICsvReader>(); var mediator = new Mock <IMediator>(); var logger = new Mock <ILogger <ImportController> >(); iFormFile.Setup(x => x.OpenReadStream()).Returns(new MemoryStream()); iFormFile.Setup(x => x.Name).Returns(fileName); csvFactory.Setup(x => x.CreateReader(It.IsAny <TextReader>())).Returns(csvReader.Object); csvReader.Setup(x => x.Configuration).Returns(new CsvConfiguration()); csvReader.Setup(x => x.GetRecords <ImportRequestViewModel>()).Returns(importRequestViewModels); mediator.Setup(x => x.Send(It.IsAny <DuplicateProviderRequestIdsQuery>())).Returns(new List <string>()); var sut = new ImportController(mediator.Object, logger.Object, csvFactory.Object); sut.SetFakeUserName(userName); await sut.Index(new IndexViewModel { EventId = 1, File = iFormFile.Object }); logger.Verify(m => m.Log(LogLevel.Information, It.IsAny <EventId>(), It.Is <FormattedLogValues>(v => v.ToString() == $"{userName} imported file {fileName}"), null, It.IsAny <Func <object, Exception, string> >()), Times.Once); }
public async Task Import_Thumbnail_Ok_SmallSize() { var services = new ServiceCollection(); services.AddSingleton <IStorage, FakeIStorage>(); services.AddSingleton <ISelectorStorage, FakeSelectorStorage>(); var serviceProvider = services.BuildServiceProvider(); var storageProvider = serviceProvider.GetRequiredService <IStorage>(); var importController = new ImportController( new FakeIImport(new FakeSelectorStorage(storageProvider)), _appSettings, _bgTaskQueue, null, new FakeSelectorStorage(storageProvider), _scopeFactory, new FakeIWebLogger()) { ControllerContext = RequestWithFile(), }; importController.Request.Headers["filename"] = "*****@*****.**"; // len() 26 var actionResult = await importController.Thumbnail() as JsonResult; var list = actionResult.Value as List <string>; var existFileInTempFolder = storageProvider.ExistFile( _appSettings.TempFolder + "*****@*****.**"); Assert.AreEqual("01234567890123456789123456@300", list.FirstOrDefault()); Assert.IsFalse(existFileInTempFolder); }
public async Task FromUrl_RequestFromWhiteListedDomain_Ok() { var fakeHttpMessageHandler = new FakeHttpMessageHandler(); var httpClient = new HttpClient(fakeHttpMessageHandler); var httpProvider = new HttpProvider(httpClient); var services = new ServiceCollection(); services.AddSingleton <IStorage, FakeIStorage>(); services.AddSingleton <ISelectorStorage, FakeSelectorStorage>(); var serviceProvider = services.BuildServiceProvider(); var storageProvider = serviceProvider.GetRequiredService <IStorage>(); var httpClientHelper = new HttpClientHelper(httpProvider, serviceProvider.GetRequiredService <IServiceScopeFactory>(), new FakeIWebLogger()); var importController = new ImportController( new FakeIImport(new FakeSelectorStorage(storageProvider)), _appSettings, _bgTaskQueue, httpClientHelper, new FakeSelectorStorage(storageProvider), _scopeFactory, new FakeIWebLogger()) { ControllerContext = RequestWithFile(), }; var actionResult = await importController.FromUrl("https://qdraw.nl", "example_image.tiff", null) as JsonResult; var list = actionResult.Value as List <ImportIndexItem>; Assert.IsTrue(list.FirstOrDefault().FilePath.Contains("example_image.tiff")); }
public async Task FromUrl_RequestFromWhiteListedDomain_NotFound() { var fakeHttpMessageHandler = new FakeHttpMessageHandler(); var httpClient = new HttpClient(fakeHttpMessageHandler); var httpProvider = new HttpProvider(httpClient); var services = new ServiceCollection(); services.AddSingleton <IStorage, FakeIStorage>(); services.AddSingleton <ISelectorStorage, FakeSelectorStorage>(); var serviceProvider = services.BuildServiceProvider(); var httpClientHelper = new HttpClientHelper(httpProvider, serviceProvider.GetRequiredService <IServiceScopeFactory>(), new FakeIWebLogger()); var importController = new ImportController(_import, _appSettings, _bgTaskQueue, httpClientHelper, new FakeSelectorStorage(new FakeIStorage()), _scopeFactory, new FakeIWebLogger()) { ControllerContext = RequestWithFile(), }; // download.geoNames is in the FakeHttpMessageHandler always a 404 var actionResult = await importController.FromUrl("https://download.geonames.org", "example.tiff", null) as NotFoundObjectResult; Assert.AreEqual(404, actionResult.StatusCode); }
public async Task ImportPostBackgroundTask_NotFound_Logger_Contain1() { var services = new ServiceCollection(); services.AddSingleton <ISelectorStorage, FakeSelectorStorage>(); services.AddSingleton <IStorage, FakeIStorage>(); services.AddSingleton <AppSettings>(); services.AddSingleton <IImportQuery, FakeIImportQuery>(); services.AddSingleton <IExifTool, FakeExifTool>(); services.AddSingleton <IQuery, FakeIQuery>(); services.AddSingleton <IImport, FakeIImport>(); services.AddSingleton <IConsole, FakeConsoleWrapper>(); services.AddSingleton <IMetaExifThumbnailService, FakeIMetaExifThumbnailService>(); services.AddMemoryCache(); var serviceProvider = services.BuildServiceProvider(); var scopeFactory = serviceProvider.GetRequiredService <IServiceScopeFactory>(); var logger = new FakeIWebLogger(); var importController = new ImportController(null, new AppSettings(), null, null, new FakeSelectorStorage(), scopeFactory, logger); await importController.ImportPostBackgroundTask( new List <string> { "/test" }, new ImportSettingsModel(), true); Assert.AreEqual(1, logger.TrackedInformation.Count); }
public void Setup() { _userRepository = new Mock <IUserRepository>(); _pocketNurseRepository = new Mock <IPocketNurseRepository>(); _pocketNurseRepository.Setup(m => m.GetAllPatients()).Returns(GetTestPatients()); _pocketNurseRepository.Setup(m => m.FindPatient(It.IsAny <string>(), It.IsAny <int>())).Returns(Task.FromResult <Patient>(GetTestPatients().First())); _controller = new ImportController(_userRepository.Object, _pocketNurseRepository.Object); }