public async Task UploadFile_Accepted() { var client = await _factory.CreateAuthenticatedClient(); _fileMetadataRepository.CreateFileMetadata(Arg.Any <FileMetadata>()) .Returns(call => call.Arg <FileMetadata>()); var fileBytes = Encoding.UTF8.GetBytes("test"); var fileName = "image.png"; var response = await client.PostAsync("/api/v2/file", new MultipartFormDataContent { { new ByteArrayContent(fileBytes), "files", fileName }, { new ByteArrayContent(Encoding.UTF8.GetBytes("test2")), "files", "image2.jpg" } }); var uploadedFiles = await response.EnsureSuccessStatusCode() .Content.ReadAsAsync <List <FileMetadata> >(); Assert.Equal(2, uploadedFiles.Count); var file = uploadedFiles.First(); Assert.Equal(fileName, file.Name); Assert.Equal(fileBytes.Length, file.FileSize); }
public async Task <FileMetadata> UploadFile(string userId, string fileName, long fileSize, Stream fileStream) { var metadata = await _metadataRepository.CreateFileMetadata(new FileMetadata { Id = Guid.NewGuid(), CreatedBy = userId, Extension = Path.GetExtension(fileName), FileSize = fileSize, Name = fileName }); await _blobRepository.UploadFile(metadata, fileStream); return(metadata); }