public void AddDocument_AddsNewDocument() { var init = _context.Documents.Count(); var uploader = _context.Staff.SingleOrDefault(x => x.FirstName == "Lily"); Assert.IsNotNull(uploader); var document = new Document { Url = "http://ftp.test.com/DocAdd", Description = "Add Document Test", Date = DateTime.Today, Approved = false, UploaderId = uploader.Id }; _controller.AddDocument((document)); var result = _context.Documents.Count(); var newDocument = _context.Documents.SingleOrDefault(x => x.Url == "http://ftp.test.com/DocAdd"); Assert.AreEqual(init + 1, result); Assert.IsNotNull(newDocument); Assert.AreEqual(true, newDocument.IsGeneral); Assert.AreEqual(false, newDocument.Approved); }
public async Task AddDocument_GivenCorrectInput_AddsDocument( [Frozen] Mock <IDocumentService> documentServiceMock, [Frozen] Mock <IFormFile> formFileMock, MemoryStream fileContentStream, Task <string> addDocumentServiceTask, AddFileRequest request) { // Arrange formFileMock.Setup(formFile => formFile.OpenReadStream()) .Returns(fileContentStream); documentServiceMock.Setup(service => service.AddAsync(request.File.Name, request.File.ContentType, ByteSize.FromBytes(request.File.Length), fileContentStream)) .Returns(addDocumentServiceTask) .Verifiable(); DocumentsController sut = new DocumentsController(documentServiceMock.Object); // Act Task addDocumentTask = sut.AddDocument(request); await addDocumentTask; // Verify addDocumentTask.Should().BeSameAs(addDocumentServiceTask); documentServiceMock.Verify(); }
public void SuccesfullDocumentUpload() { ActionResult <AddDocumentResponse> expectedResult = null; IFormFile file = null; var documentServiceMock = new Mock <IDocumentService>(); documentServiceMock .Setup(x => x.AddDocument(It.IsAny <DocumentModel>())); var controller = new DocumentsController(documentServiceMock.Object); "Given I have a PDF to upload" .x(() => file = new FormFile(new MemoryStream(Encoding.UTF8.GetBytes("Document")), 0, 0, "TestDoc", "testdoc.pdf")); "When I send the PDF to the API" .x(() => { expectedResult = controller.AddDocument(1, file); }); "Then it is uploaded succesfully" .x(() => { ((OkResult)expectedResult.Result).StatusCode.Should().Be(200); }); }
public void InvalidDocumentUpload() { ActionResult <AddDocumentResponse> expectedResult = null; IFormFile file = null; var documentServiceMock = new Mock <IDocumentService>(); documentServiceMock .Setup(x => x.AddDocument(It.IsAny <DocumentModel>())); var controller = new DocumentsController(documentServiceMock.Object); "Given I have a non-pdf to upload" .x(() => { file = new FormFile(new MemoryStream(Encoding.UTF8.GetBytes("Document")), 0, 0, "TestDoc", "TestDoc.txt"); }); "When I send the non-pdf to the API" .x(() => { expectedResult = controller.AddDocument(1, file); }); "Then the API does not accept the file and returns a 400 status" .x(() => { ((ObjectResult)expectedResult.Result).StatusCode.Should().Be(400); ((ObjectResult)expectedResult.Result).Value.Should().Be("Invalid file type"); }); }
public async Task AddDocument_Success() { //Arrange------------------------------------------------------------------------------------------------------------------------------ _mockRepo.Setup(x => x.DocumentRepository.GetAsync(It.IsAny <Expression <Func <Document, bool> > >())) .ReturnsAsync(It.IsAny <Document>()); _mockRepo.Setup(x => x.DocumentRepository.InsertAsync(It.IsAny <Document>())); _mockRepo.Setup(x => x.SaveAsync()).ReturnsAsync(true); _mockUploadService.Setup(x => x.UploadFileToLocal(It.IsAny <IFormFile>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>(), It.IsAny <string>())) .ReturnsAsync(UnitTestsDataInput.fileUploadedDto_Success); _mockMapper.Setup(x => x.Map(It.IsAny <DocumentForCreateDto>(), It.IsAny <Document>())) .Returns(UnitTestsDataInput.Users.First().Documents.First()); _mockMapper.Setup(x => x.Map <DocumentForReturnDto>(It.IsAny <Document>())) .Returns(new DocumentForReturnDto()); var httpContext = new DefaultHttpContext(); httpContext.Request.Scheme = "222"; _controller.ControllerContext = new ControllerContext() { HttpContext = httpContext }; //Act---------------------------------------------------------------------------------------------------------------------------------- var result = await _controller.AddDocument(It.IsAny <string>(), new DocumentForCreateDto()); var okResult = result as CreatedAtRouteResult; //Assert------------------------------------------------------------------------------------------------------------------------------- Assert.NotNull(okResult); Assert.IsType <DocumentForReturnDto>(okResult.Value); Assert.Equal(201, okResult.StatusCode); }