public void TestIndex_ShouldCallCloudinaryFactoryGetCloudinary(string userId, string pictureUrl) { // Act var mockedUserService = new Mock <IUserService>(); mockedUserService.Setup(s => s.GetUserById(It.IsAny <string>())) .Returns(new User { ProfileImageUrl = pictureUrl }); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var mockedCloudinaryFactory = new Mock <ICloudinaryFactory>(); var mockedViewModelFactory = new Mock <IViewModelFactory>(); mockedViewModelFactory.Setup(f => f.CreateUploadViewModel(It.IsAny <Cloudinary>(), It.IsAny <string>())) .Returns((Cloudinary c, string imageUrl) => new UploadViewModel(c, imageUrl)); var controller = new UploadController(mockedUserService.Object, mockedAuthenticationProvider.Object, mockedCloudinaryFactory.Object, mockedViewModelFactory.Object); // Act controller.Index(); // Assert mockedCloudinaryFactory.Verify(f => f.GetCloudinary(), Times.Once); }
public async Task UploadToFolderSidecarFile_UpdateMainItemWithSidecarRef() { // it should add a reference to the main item var controller = new UploadController(_import, new AppSettings { UseDiskWatcher = false }, new FakeSelectorStorage(_iStorage), _query, new FakeIRealtimeConnectionsService(), new FakeIWebLogger(), new FakeIMetaExifThumbnailService()) { ControllerContext = RequestWithSidecar(), }; var dngSubPath = "/UploadToFolderSidecarFile.dng"; await _query.AddItemAsync( new FileIndexItem(dngSubPath)); var toPlaceSubPath = "/UploadToFolderSidecarFile.xmp"; controller.ControllerContext.HttpContext.Request.Headers["to"] = toPlaceSubPath; //Set header await controller.UploadToFolderSidecarFile(); var queryResult = await _query.GetObjectByFilePathAsync(dngSubPath); var sidecarExtList = queryResult.SidecarExtensionsList.ToList(); Assert.AreEqual(1, sidecarExtList.Count); Assert.AreEqual("xmp", sidecarExtList[0]); }
public void TestPostIndex_ShouldCallUserServiceChangeProfilePicture(string userId, string pictureUrl) { // Act var mockedUserService = new Mock <IUserService>(); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var mockedCloudinaryFactory = new Mock <ICloudinaryFactory>(); var mockedViewModelFactory = new Mock <IViewModelFactory>(); var controller = new UploadController(mockedUserService.Object, mockedAuthenticationProvider.Object, mockedCloudinaryFactory.Object, mockedViewModelFactory.Object); var model = new UploadViewModel { ImageUrl = pictureUrl }; // Act controller.Index(model); // Assert mockedUserService.Verify(s => s.ChangeProfilePicture(userId, pictureUrl), Times.Once); }
public async Task UploadToFolder_DefaultFlow_ColorClass() { var controller = new UploadController(_import, _appSettings, new FakeSelectorStorage(_iStorage), _query, new FakeIRealtimeConnectionsService(), new FakeIWebLogger(), new FakeIMetaExifThumbnailService()) { ControllerContext = RequestWithFile(CreateAnImageColorClass.Bytes), }; var toPlaceSubPath = "/color-class01.jpg"; controller.ControllerContext.HttpContext.Request.Headers["to"] = toPlaceSubPath; //Set header var actionResult = await controller.UploadToFolder() as JsonResult; var list = actionResult.Value as List <ImportIndexItem>; Assert.AreEqual(ImportStatus.Ok, list.FirstOrDefault().Status); var fileSystemResult = _iStorage.ExistFile(toPlaceSubPath); Assert.IsTrue(fileSystemResult); var queryResult = _query.SingleItem(toPlaceSubPath); Assert.AreEqual("Sony", queryResult.FileIndexItem.Make); Assert.AreEqual(ColorClassParser.Color.Winner, queryResult.FileIndexItem.ColorClass); await _query.RemoveItemAsync(queryResult.FileIndexItem); }
public void TestIndex_ShouldSetViewModelCorrectly(string userId, string pictureUrl) { // Act var mockedUserService = new Mock <IUserService>(); mockedUserService.Setup(s => s.GetUserById(It.IsAny <string>())) .Returns(new User { ProfileImageUrl = pictureUrl }); var mockedAuthenticationProvider = new Mock <IAuthenticationProvider>(); mockedAuthenticationProvider.Setup(p => p.CurrentUserId).Returns(userId); var mockedCloudinaryFactory = new Mock <ICloudinaryFactory>(); var model = new UploadViewModel(); var mockedViewModelFactory = new Mock <IViewModelFactory>(); mockedViewModelFactory.Setup(f => f.CreateUploadViewModel(It.IsAny <Cloudinary>(), It.IsAny <string>())) .Returns(model); var controller = new UploadController(mockedUserService.Object, mockedAuthenticationProvider.Object, mockedCloudinaryFactory.Object, mockedViewModelFactory.Object); // Act, Assert controller .WithCallTo(c => c.Index()) .ShouldRenderDefaultView() .WithModel <UploadViewModel>(m => Assert.AreSame(model, m)); }
public ControllerTests() { _data = new Mock <IDataAccessLayer>(); _attributeMapper = new Mock <AttributeViewModelMapper>(); _datasetMapper = new Mock <IDatasetViewModelMapper>(); _browseCubeMapper = new Mock <IBrowseCubeViewModelMapper>(); _querier = new Mock <IStarSchemaQuerier>(); _graphService = new Mock <IGraphService>(); _treeBuilder = new Mock <IDimensionTreeBuilder>(); _arMapper = new Mock <IAssociationRuleToViewMapper>(); _processor = new Mock <IAssociationRulesTaskProcessor>(); _discretizator = new Mock <IDataDiscretizator>(); _taskMapper = new Mock <IMiningTaskViewModelMapper>(); _validations = new Mock <IInputValidations>(); _handler = new Mock <IFileHandler>(); _builder = new Mock <IStarSchemaBuilder>(); _home = new HomeController(); _bce = new BrowseCubeControllerEngine(_data.Object, _datasetMapper.Object, _browseCubeMapper.Object, _querier.Object, _graphService.Object, _treeBuilder.Object, _arMapper.Object); _bc = new BrowseCubeController(_bce); _mre = new MinedResultsControllerEngine(_data.Object, _querier.Object, _processor.Object, _taskMapper.Object, _discretizator.Object, _treeBuilder.Object); _mr = new MinedResultsController(_mre, _bce, _validations.Object); _uce = new UploadControllerEngine(_data.Object, _datasetMapper.Object, _attributeMapper.Object, _handler.Object, _builder.Object, _querier.Object); _uc = new UploadController(_uce, _validations.Object); }
public async Task When_uploading_a_file_that_is_not_a_zip() { var client = new MemoryBlobClient(); var store = new InMemoryStreamStore(); var validator = new ZipArchiveValidator(Encoding.UTF8); var resolver = Resolve.WhenEqualToMessage( new RoadNetworkChangesArchiveCommandModule( client, store, new FakeRoadNetworkSnapshotReader(), validator, SystemClock.Instance ) ); var controller = new UploadController( Dispatch.Using(resolver), client) { ControllerContext = new ControllerContext { HttpContext = new DefaultHttpContext() } }; var formFile = new FormFile(new MemoryStream(), 0L, 0L, "name", "name") { Headers = new HeaderDictionary(new Dictionary <string, StringValues> { { "Content-Type", StringValues.Concat(StringValues.Empty, "application/octet-stream") } }) }; var result = await controller.Post(formFile); Assert.IsType <UnsupportedMediaTypeResult>(result); }
/// <summary> /// [异步async]上传文件 /// </summary> /// <param name="localFile">本地待上传的文件名</param> /// <param name="saveKey">要保存的文件名称</param> /// <param name="token">上传凭证</param> /// <returns>上传文件后的返回结果</returns> public async Task <HttpResult> UploadFileAsync(string localFile, string saveKey, string token) { HttpResult result = new HttpResult(); var fi = new FileInfo(localFile); if (fi.Length > PUT_THRESHOLD) { if (recordFile == null) { string recordKey = ResumeHelper.GetDefaultRecordKey(localFile, saveKey); recordFile = Path.Combine(UserEnv.GetHomeFolder(), recordKey); } if (upph == null) { upph = new UploadProgressHandler(ResumableUploader.DefaultUploadProgressHandler); } if (upctl == null) { upctl = new UploadController(ResumableUploader.DefaultUploadController); } ResumableUploader ru = new ResumableUploader(UPLOAD_FROM_CDN, CHUNK_UNIT); result = await ru.UploadFileAsync(localFile, saveKey, token, recordFile, upph, upctl); } else { FormUploader fu = new FormUploader(UPLOAD_FROM_CDN); result = await fu.UploadFileAsync(localFile, saveKey, token); } return(result); }
/// <summary> /// [异步async]上传文件 /// </summary> /// <param name="localFile">本地待上传的文件名</param> /// <param name="saveKey">要保存的文件名称</param> /// <param name="token">上传凭证</param> /// <returns>上传文件后的返回结果</returns> public async Task <HttpResult> UploadFileAsync(StorageFile localFile, string saveKey, string token) { HttpResult result = new HttpResult(); var fi = await localFile.GetBasicPropertiesAsync(); if (fi.Size > (ulong)PUT_THRESHOLD) { if (recordFile == null) { string recordKey = ResumeHelper.GetDefaultRecordKey(localFile.Path, saveKey); recordFile = await(await UserEnv.GetHomeFolderAsync()).CreateFileAsync(recordKey, CreationCollisionOption.OpenIfExists); } if (upph == null) { upph = new UploadProgressHandler(ResumableUploader.DefaultUploadProgressHandler); } if (upctl == null) { upctl = new UploadController(ResumableUploader.DefaultUploadController); } ResumableUploader ru = new ResumableUploader(UPLOAD_FROM_CDN, CHUNK_UNIT); result = await ru.UploadFileAsync(localFile, saveKey, token, recordFile, upph, upctl); } else { FormUploader fu = new FormUploader(UPLOAD_FROM_CDN); result = await fu.UploadFileAsync(localFile, saveKey, token); } return(result); }
public void Upload_WhenImageNullIsPassed_ShouldReturnUploadView() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(UploadController).Assembly); var carOffer = new CarOffer(); var carOfferViewModel = new CarOfferViewModel(); var fileToPass = new List <HttpPostedFileBase>(); fileToPass.Add(null); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); var imageServiceMock = new Mock <IImageService>(); var userServiceMock = new Mock <IUserService>(); UploadController uploadController = new UploadController(carOffersServiceMock.Object, imageServiceMock.Object, userServiceMock.Object); // Act & Assert uploadController.WithCallTo(x => x.Upload(carOfferViewModel, fileToPass)).ShouldRenderView("Upload"); }
public void Upload_WhenValidParametersArePased_ShouldReturnCorerectViewResultName() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(UploadController).Assembly); var carOffer = new CarOffer(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); var imageServiceMock = new Mock <IImageService>(); var userServiceMock = new Mock <IUserService>(); UploadController uploadController = new UploadController(carOffersServiceMock.Object, imageServiceMock.Object, userServiceMock.Object); // Act ViewResult result = uploadController.Upload() as ViewResult; // Assert Assert.AreEqual(string.Empty, result.ViewName); }
public void Upload_WhenValidParameterAreProvided_ShouldReturnTheDefaoultContreller() { // Arrange var autoMapperConfig = new AutoMapperConfig(); autoMapperConfig.Execute(typeof(UploadController).Assembly); var carOffer = new CarOffer(); var carOfferViewModel = new CarOfferViewModel(); var fileToPass = new List <HttpPostedFileBase>(); var carOffersServiceMock = new Mock <ICarOffersService>(); carOffersServiceMock.Setup(x => x.GetAll()) .Returns(() => new List <CarOffer> { carOffer }.AsQueryable()); var imageServiceMock = new Mock <IImageService>(); var userServiceMock = new Mock <IUserService>(); UploadController uploadController = new UploadController(carOffersServiceMock.Object, imageServiceMock.Object, userServiceMock.Object); // Act & Assert uploadController.WithCallTo(x => x.Upload(carOfferViewModel, fileToPass)).ShouldRedirectToRoute(string.Empty); }
public async Task UploadToFolder_SidecarListShouldBeUpdated() { var controller = new UploadController(_import, _appSettings, new FakeSelectorStorage(_iStorage), _query, new FakeIRealtimeConnectionsService(), new FakeIWebLogger(), new FakeIMetaExifThumbnailService()) { ControllerContext = RequestWithFile(), }; var toPlaceSubPath = "/test_sidecar.dng"; var toPlaceXmp = "/test_sidecar.xmp"; await _iStorage.WriteStreamAsync(new MemoryStream(new byte[1]), toPlaceXmp); controller.ControllerContext.HttpContext.Request.Headers["to"] = toPlaceSubPath; //Set header await controller.UploadToFolder(); var queryResult = _query.SingleItem(toPlaceSubPath); var sidecarExtList = queryResult.FileIndexItem.SidecarExtensionsList.ToList(); Assert.AreEqual(1, sidecarExtList.Count); Assert.AreEqual("xmp", sidecarExtList[0]); await _query.RemoveItemAsync(queryResult.FileIndexItem); }
public void UploadConstructor_WhenInValidParametersArePased_ShouldThrowArgumentNullException() { // Arrange var result = new UploadController(null, null, null); // Act & Assert Assert.That(() => result.ValueProvider, Throws.ArgumentNullException); }
public void Upload_ConfigVariables_Empty_Valid() { var uc = new UploadController(GetValidSerialPort()); Action result = () => uc.UpdateConfiguration(new ConfigVariables()); result.Should().NotThrow(); }
public void Upload_ConfigVariables_NULL_Invalid() { var uc = new UploadController(GetValidSerialPort()); Action result = () => uc.UpdateConfiguration(null); result.Should().Throw <UnauthorizedAccessException>(); }
public void Index() { var controller = new UploadController(); var result = controller.Index(); Assert.IsType <ViewResult>(result); Assert.NotNull(result); }
public async Task ErrorTests() { var imageProviderMock = new Mock <IImageProvider>(); imageProviderMock .Setup(i => i.Resize(It.IsAny <string>(), It.IsAny <Stream>())) .Returns(() => { throw new Exception("Foo"); }); var formCollectionMock = new Mock <IFormCollection>(); var formFileCollectionMock = new Mock <IFormFileCollection>(); var formFileMock = new Mock <IFormFile>(); formCollectionMock.Setup(f => f.Files).Returns(formFileCollectionMock.Object); formFileCollectionMock.Setup(f => f.Count).Returns(1); formFileCollectionMock.Setup(f => f.GetEnumerator()).Returns((new List <IFormFile>() { formFileMock.Object }).GetEnumerator()); formFileMock.Setup(f => f.OpenReadStream()).Returns(new MemoryStream()); formFileMock.Setup(f => f.ContentDisposition).Returns("form-data; name=\"photo\"; filename=\"kneeph.jpg\""); formFileMock.Setup(f => f.ContentType).Returns("image/jpeg"); var httpRequestMock = new DefaultHttpRequest(new DefaultHttpContext(), Mock.Of <IFeatureCollection>()); httpRequestMock.Form = formCollectionMock.Object; var httpContext = new Mock <HttpContext>(); // new DefaultHttpContext(); httpContext.Setup(h => h.Request).Returns(httpRequestMock); var loggerFactoryMock = new Mock <ILoggerFactory>(); loggerFactoryMock.Setup(l => l.CreateLogger(It.IsAny <string>())).Returns(Mock.Of <ILogger>()); UploadController controller = new UploadController(imageProviderMock.Object, loggerFactoryMock.Object); controller.ActionContext = new Microsoft.AspNet.Mvc.ActionContext() { HttpContext = httpContext.Object }; Exception exception = null; try { await controller.Post(); } catch (Exception ex) { exception = ex; } Assert.NotNull(exception); Assert.Equal("Foo", exception.Message); }
public UploadTesting() { IConfigurationBuilder configuration = new ConfigurationBuilder(); configuration.AddJsonFile("appsettings.json"); _configuration = configuration.Build(); _uploadRepository = new UploadRepository(_configuration); _uploadBusiness = new UploadBusiness(_uploadRepository); controller = new UploadController(_uploadBusiness, _configuration); }
public UploadControllerTests() { _logger = new Mock <ILogger <UploadController> >(); _imageService = new Mock <IImageService>(); _fileUploadService = new Mock <IFileUploadService>(); _adminLogService = new Mock <IAdminLogService>(); _uploadTracker = new Mock <IUploadTracker>(); _uploadController = new UploadController(_logger.Object, _imageService.Object, _fileUploadService.Object, _adminLogService.Object, _uploadTracker.Object); }
public void Index() { // Arrange UploadController controller = new UploadController(); // Act ViewResult result = controller.Index() as ViewResult; // Assert Assert.IsNotNull(result); }
public void Setup() { // Specify temporary path for Attachments and Archive folders OverrideSettingPath(); controller = new UploadController(); // Reset the database and reload static data Database.StoredProcedure(Settings.StoredProcedures.InitTest); StaticData.Load(); }
public async void ReturnsBadRequestIfNoFileProvided() { var serviceMock = new Mock <IFileService>(); var controller = new UploadController(serviceMock.Object); var response = await controller.Post(null); Assert.IsType <BadRequestObjectResult>(response); Assert.Equal("CSV must be passed", (response as BadRequestObjectResult).Value); }
public FileUploader(SyncSetting syncSetting, ManualResetEvent doneEvent, SyncProgressPage syncProgressPage, int taskId, UploadController upctl) { this.syncSetting = syncSetting; this.doneEvent = doneEvent; this.syncProgressPage = syncProgressPage; this.taskId = taskId; this.localHashDB = syncProgressPage.LocalHashDB(); this.syncLogDB = syncProgressPage.SyncLogDB(); upController = upctl; }
/// <summary> /// 上传大文件,支持断点续上传 /// </summary> public static void uploadBigFile() { Mac mac = new Mac(Settings.AccessKey, Settings.SecretKey); string bucket = "test"; string saveKey = "video-x1-1.mp4"; string localFile = "D:/QFL/1.mp4"; // 断点记录文件,可以不用设置,让SDK自动生成,如果出现续上传的情况,SDK会尝试从该文件载入断点记录 // SDK自动生成的文件为Path.Combine(UserEnv.GetHomeFolder(), ResumeHelper.GetDefaultRecordKey(localFile, saveKey)) // 对于不同的上传任务,请使用不同的recordFile string recordFile = "D:/QFL/resume"; PutPolicy putPolicy = new PutPolicy(); putPolicy.Scope = bucket; putPolicy.SetExpires(3600); putPolicy.DeleteAfterDays = 1; // 将PutPolicy转换为JSON字符串 string jstr = putPolicy.ToJsonString(); string token = Auth.CreateUploadToken(mac, jstr); // 包含两个参数,并且都有默认值 // 参数1(bool): uploadFromCDN是否从CDN加速上传,默认否 // 参数2(enum): chunkUnit上传分片大小,可选值128KB,256KB,512KB,1024KB,2048KB,4096KB ResumableUploader ru = new ResumableUploader(false, ChunkUnit.U1024K); // ResumableUploader.uploadFile有多种形式,您可以根据需要来选择 // // 最简模式,使用默认recordFile和默认uploadProgressHandler // UploadFile(localFile,saveKey,token) // // 基本模式,使用默认uploadProgressHandler // UploadFile(localFile,saveKey,token,recordFile) // // 一般模式,使用自定义进度处理(监视上传进度) // UploadFile(localFile,saveKey,token,recordFile,uploadProgressHandler) // // 高级模式,包含上传控制(可控制暂停/继续 或者强制终止) // UploadFile(localFile,saveKey,token,recordFile,uploadProgressHandler,uploadController) // // 高级模式,包含上传控制(可控制暂停 / 继续 或者强制终止), 可设置最大尝试次数 // UploadFile(localFile,saveKey,token,recordFile,maxTry,uploadProgressHandler,uploadController) // 使用默认进度处理,使用自定义上传控制 UploadProgressHandler upph = new UploadProgressHandler(ResumableUploader.DefaultUploadProgressHandler); UploadController upctl = new UploadController(uploadControl); var result = ru.UploadFile(localFile, saveKey, token, recordFile, upph, upctl); Console.WriteLine(result); }
public void SubmitAbstract() { // Arrange UploadController controller = new UploadController(); // Act ViewResult result = controller.SubmitAbstract() as ViewResult; // Assert Assert.IsNotNull(result); }
private void ExecuteUpload(object parameter) { if (CanUpload) { UploadController.UploadPsts(copyOption); } else { MessageBox.Show("Nope!"); } }
public void RetornaStatusCodeErrorDadoArquivoTiopoDiferenteDeTexto() { UploadController upload = new UploadController(_registroCorridaServiceMock.Object, _corridaServiceMock.Object, _bonusServiceMock.Object); var mock = ObterMockIFromFilePDF(); var result = upload.CarregarArquivo(mock.Object).Result; var badRequestResult = result as BadRequestObjectResult; Assert.IsNotNull(badRequestResult); Assert.AreEqual(400, badRequestResult.StatusCode); Assert.IsTrue(badRequestResult.Value.ToString().Contains("Apenas arquivo texto")); }
public void RetornaStatusCodeErrorDadoNenhumArquivoParaUpload() { UploadController upload = new UploadController(_registroCorridaServiceMock.Object, _corridaServiceMock.Object, _bonusServiceMock.Object); var mock = new Mock <IFormFile>(); var result = upload.CarregarArquivo(mock.Object).Result; var badRequestResult = result as BadRequestObjectResult; Assert.IsNotNull(badRequestResult); Assert.AreEqual(400, badRequestResult.StatusCode); Assert.IsTrue(badRequestResult.Value.ToString().Contains("Nenhum Arquivo Selecionado")); }
public async Task UploadToFolder_DefaultFlow_ShouldNotOverWriteDatabase() { var controller = new UploadController(_import, _appSettings, new FakeSelectorStorage(_iStorage), _query, new FakeIRealtimeConnectionsService(), new FakeIWebLogger(), new FakeIMetaExifThumbnailService()) { ControllerContext = RequestWithFile(), }; var toPlaceSubPath = "/duplicate_upload/yes01.jpg"; var toPlaceFolder = "/duplicate_upload"; // add to db await _query.AddItemAsync(new FileIndexItem(toPlaceSubPath)); _iStorage.CreateDirectory(toPlaceFolder); controller.ControllerContext.HttpContext.Request.Headers["to"] = toPlaceSubPath; //Set header var actionResult = await controller.UploadToFolder() as JsonResult; if (actionResult == null) { throw new ArgumentNullException(nameof(actionResult), "actionResult should not be null"); } var list = actionResult.Value as List <ImportIndexItem>; if (list == null) { throw new ArgumentNullException(nameof(list), "result should not be null"); } Assert.AreEqual(ImportStatus.Ok, list[0].Status); var fileSystemResult = _iStorage.ExistFile(toPlaceSubPath); Assert.IsTrue(fileSystemResult); var getAllFiles = await _query.GetAllFilesAsync(toPlaceFolder); // Should not duplicate Assert.AreEqual(1, getAllFiles.Count); var queryResult = _query.SingleItem(toPlaceSubPath); Assert.AreEqual("Sony", queryResult.FileIndexItem.Make); await _query.RemoveItemAsync(queryResult.FileIndexItem); }