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>()));
        }
Exemple #3
0
        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."));
        }
Exemple #5
0
        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);
        }
Exemple #8
0
        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);
        }
Exemple #9
0
        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)));
        }
Exemple #10
0
        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();
            }
        }
Exemple #11
0
 public ImpStatusService()
 {
     _impCtrlSettings              = ImportControlSetting.GetSettings();
     _impController                = new ImportController(_impCtrlSettings);
     _impController.StatusChanged += Log;
     ShowSettingImpCtrl();
 }
Exemple #12
0
        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);
        }
Exemple #16
0
        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)}"));
        }
Exemple #18
0
        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);
        }
Exemple #20
0
        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."));
        }
Exemple #22
0
        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);
        }
Exemple #24
0
        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);
        }
Exemple #26
0
        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);
        }
Exemple #27
0
        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"));
        }
Exemple #28
0
        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);
        }
Exemple #29
0
        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);
 }