public async void PostUploadInfoBadRequest() { // Arrange var config = new MapperConfiguration(cfg => { cfg.AddProfile(new MappingProfile()); }); var mapper = config.CreateMapper(); var request = new UploadInfoRequest(); // *** uncomment all lines below to fail test *** //request.ID = "document-id"; //request.DocumentCategory = "document-category"; //request.Size = 1; var loggerMock = new Mock <ILogger <DocumentTrackingController> >(); //var repositoryMock = new Mock<ITrackingMemoryRepository>(); var repository = new TrackingMemoryRepository(); var managerMock = new Mock <TrackingManager>(repository); var controller = new DocumentTrackingController(loggerMock.Object, managerMock.Object, mapper); var response = await controller.PostUploadInfo(request); // Assert var viewResult = Assert.IsType <BadRequestObjectResult>(response.Result); Assert.Equal("document data incomplete", viewResult.Value); }
public async Task <ActionResult <UploadInfoResponse> > PostUploadInfo(UploadInfoRequest uploadInfoRequest) { if (!IsUploadInfoRequestValid(uploadInfoRequest)) { return(BadRequest("document data incomplete")); } var uploadInfo = _mapper.Map <DocumentInfo>(uploadInfoRequest); UploadInfoResponse response = new UploadInfoResponse(); response.ExternalID = await _manager.TrackDocument(uploadInfo); return(Ok(response)); }
public async void PostUploadInfoOk() { // Arrange var config = new MapperConfiguration(cfg => { cfg.AddProfile(new MappingProfile()); }); var mapper = config.CreateMapper(); var request = new UploadInfoRequest(); request.ID = "document-id"; request.DocumentCategory = "document-category"; request.Size = 1; var loggerMock = new Mock <ILogger <DocumentTrackingController> >(); var repositoryMock = new Mock <ITrackingMemoryRepository>(); var managerMock = new Mock <TrackingManager>(repositoryMock.Object); managerMock.Setup(m => m.TrackDocument( It.IsAny <DocumentInfo>() ) ).ReturnsAsync("newid123456"); var controller = new DocumentTrackingController(loggerMock.Object, managerMock.Object, mapper); var response = await controller.PostUploadInfo(request); // Assert var viewResult = Assert.IsType <OkObjectResult>(response.Result); var uploadInfoResponse = Assert.IsType <UploadInfoResponse>(viewResult.Value); Assert.Equal("newid123456", uploadInfoResponse.ExternalID); }
private static bool IsUploadInfoRequestValid(UploadInfoRequest uploadInfoRequest) { return(uploadInfoRequest != null && string.IsNullOrEmpty(uploadInfoRequest.ID) == false && string.IsNullOrEmpty(uploadInfoRequest.DocumentCategory) == false && uploadInfoRequest.Size > 0); }