public async void PostImage_FullPayload_201_WithLocation() { using (var context = new AmazonRDSContext(contextOptions)) { var _uploadService = new UploadAppService(context, _awsServiceMock.Object); var imageModel = new ImageModel { Description = "Test description", ImageFile = CreateFakeFormFile(100, "image.jpg") }; var controller = Util.ConfigController(_uploadService, context, _awsServiceMock.Object, _elasticsearchServiceMock.Object); var key = Guid.NewGuid().ToString(); _awsServiceMock.Setup(x => x.UploadFileAsync(It.IsAny <Stream>())) .Returns(Task.FromResult(key)); var result = await controller.UploadImage(imageModel); var imageEntity = GetCreatedObject <ImageEntity>(result); Assert.True(imageEntity.Id > 0); Assert.True(((CreatedResult)result).StatusCode.Value == (int)HttpStatusCode.Created); Assert.True(((CreatedResult)result).Location == locationUri); } }
public async void SearchImagesOnElasticSearch_AllQueryParams_204() { using (var context = new AmazonRDSContext(contextOptions)) { var _elasticsearchAppService = new ElasticsearchAppService(_elasticsearchClientMock.Object, context); var _uploadService = new UploadAppService(context, _awsServiceMock.Object); var controller = Util.ConfigController(_uploadService, context, _awsServiceMock.Object, _elasticsearchAppService); var hitsDetails = new List <Hit>(); var elasticsearchQueryResult = new ElasticsearchQueryResult { hits = new Hits { hits = hitsDetails } }; _elasticsearchClientMock.Setup(x => x.QueryImagesOnElasticsearch(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())) .Returns(Task.FromResult(elasticsearchQueryResult)); var result = await controller.SearchImagesOnElasticSearch("test", "jpeg", "120", "0"); Assert.True(((NoContentResult)result).StatusCode == (int)HttpStatusCode.NoContent); } }
public async void SearchImagesOnElasticSearch_NullQueryParams_200() { using (var context = new AmazonRDSContext(contextOptions)) { var _elasticsearchAppService = new ElasticsearchAppService(_elasticsearchClientMock.Object, context); var _uploadService = new UploadAppService(context, _awsServiceMock.Object); var controller = Util.ConfigController(_uploadService, context, _awsServiceMock.Object, _elasticsearchAppService); var hitsDetails = new List <Hit> { new Hit { _source = new ImageDetail { Description = "test", FileSizeKb = "120", FileType = "image/jpeg" } } }; var elasticsearchQueryResult = new ElasticsearchQueryResult { hits = new Hits { hits = hitsDetails } }; _elasticsearchClientMock.Setup(x => x.QueryImagesOnElasticsearch(It.IsAny <string>(), It.IsAny <int>(), It.IsAny <int>(), It.IsAny <string>())) .Returns(Task.FromResult(elasticsearchQueryResult)); var result = await controller.SearchImagesOnElasticSearch(null, null, null, null); Assert.True(((List <ImageDetail>)((OkObjectResult)result).Value).Count > 0); Assert.True(((OkObjectResult)result).StatusCode == (int)HttpStatusCode.OK); } }
public async void MigrateRdsToElasticsearch_200() { using (var context = new AmazonRDSContext(contextOptions)) { var _elasticsearchAppService = new ElasticsearchAppService(_elasticsearchClientMock.Object, context); var _uploadService = new UploadAppService(context, _awsServiceMock.Object); var imageEntity = new ImageEntity { Description = "Test description", FileSizeKb = 200, FileType = "image/png", ImageKey = "Test", createdDate = DateTime.Now }; context.Images.Add(imageEntity); context.SaveChanges(); _elasticsearchClientMock.Setup(x => x.InsertDataOnElasticsearch(It.IsAny <long>(), It.IsAny <ImageDetail>())) .Returns(Task.FromResult(new ElasticsearchPutResponse())); var controller = Util.ConfigController(_uploadService, context, _awsServiceMock.Object, _elasticsearchAppService); var result = await controller.MigrateRdsToElasticsearch(); var okResult = GetOkObject(result); Assert.True(okResult.StatusCode == (int)HttpStatusCode.OK); } }
private void Seed() { using (var _apiContext = new AmazonRDSContext(contextOptions)) { _apiContext.Database.EnsureDeleted(); _apiContext.Database.EnsureCreated(); _apiContext.Images.SingleOrDefault(); } }
public static ImageController ConfigController(IUploadService uploadService, AmazonRDSContext amazonRDSContext, IAwsS3Service awsS3service, IElasticsearchService elasticsearchService) { var service = new UploadAppService(amazonRDSContext, awsS3service); var controllerContext = new ControllerContext() { HttpContext = ConfigRequest("dummy data"), }; var controller = new ImageController(uploadService, elasticsearchService) { ControllerContext = controllerContext }; return(controller); }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, AmazonRDSContext dbContext) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } dbContext.Database.EnsureCreated(); app.UseHttpsRedirection(); app.UseRouting(); app.UseCors("AllowAll"); app.UseAuthorization(); app.UseMiddleware(typeof(ExceptionHandlingMiddleware)); app.UseEndpoints(endpoints => { endpoints.MapControllers(); }); }
public void PostImage_WithoutDescription_400() { using (var context = new AmazonRDSContext(contextOptions)) { var _uploadService = new UploadAppService(context, _awsServiceMock.Object); var imageModel = new ImageModel { Description = "", ImageFile = CreateFakeFormFile(100, "image.png") }; var controller = Util.ConfigController(_uploadService, context, _awsServiceMock.Object, _elasticsearchServiceMock.Object); var key = Guid.NewGuid().ToString(); _awsServiceMock.Setup(x => x.UploadFileAsync(It.IsAny <Stream>())) .Returns(Task.FromResult(key)); Func <Task> action = async() => await controller.UploadImage(imageModel); action.Should().Throw <BadRequestException>(); } }
public void PostImage_ImageBiggerThan500kb_400() { using (var context = new AmazonRDSContext(contextOptions)) { var _uploadService = new UploadAppService(context, _awsServiceMock.Object); var imageModel = new ImageModel { Description = "Test", ImageFile = new FormFile(new MemoryStream(Encoding.UTF8.GetBytes("dummy image")), 0, 550000, "Data", "image.png") }; var controller = Util.ConfigController(_uploadService, context, _awsServiceMock.Object, _elasticsearchServiceMock.Object); var key = Guid.NewGuid().ToString(); _awsServiceMock.Setup(x => x.UploadFileAsync(It.IsAny <Stream>())) .Returns(Task.FromResult(key)); Func <Task> action = async() => await controller.UploadImage(imageModel); action.Should().Throw <BadRequestException>(); } }
public ElasticsearchAppService(IElasticsearchClient elasticsearchClient, AmazonRDSContext amazonRDS) { _elasticsearchClient = elasticsearchClient; _amazonRDS = amazonRDS; }
public UploadAppService(AmazonRDSContext amazonRDS, IAwsS3Service awsS3service) { _amazonRDS = amazonRDS; _awsS3service = awsS3service; }