public void InsertTaskTest() { var request = new InsertTaskRequest { TaskProperties = new TaskEditDTO { Name = "test", Time = DateTime.Now, UserId = Guid.NewGuid() } }; var expectedResonse = new InsertTaskResponse { Exception = null }; var mockService = new Mock <ITaskService>(); mockService.Setup(x => x.InsertTask(request)).Returns(expectedResonse); var mockLogger = new Mock <ILoggingService>(); var mockEmail = new Mock <IEmailService>(); var mockConfig = new Mock <IAppConfig <IServiceConfigOptions> >(); var service = new EnrichedTaskService(mockService.Object, mockLogger.Object, mockEmail.Object, mockConfig.Object); var response = service.InsertTask(request); Assert.IsNull(response.Exception); Assert.AreEqual(expectedResonse.Exception, response.Exception); mockService.Verify(x => x.InsertTask(request), Times.Once); }
public void InsertTaskInvalidTest() { var request = new InsertTaskRequest { TaskProperties = new TaskEditDTO { Time = DateTime.Now, UserId = Guid.NewGuid() } }; var expectedResonse = new InsertTaskResponse { Exception = new ValidationException("invalid") }; var mockService = new Mock <ITaskService>(); mockService.Setup(x => x.InsertTask(request)).Returns(expectedResonse); var mockLogger = new Mock <ILoggingService>(); var mockEmail = new Mock <IEmailService>(); mockEmail.Setup(x => x.SendEmail(It.IsAny <EmailArguments>())); var mockConfigOptions = new Mock <IServiceConfigOptions>(); mockConfigOptions.Setup(x => x.AdminEmail).Returns("test"); mockConfigOptions.Setup(x => x.ErrorEmailSubject).Returns("test"); mockConfigOptions.Setup(x => x.SmtpServer).Returns("test"); mockConfigOptions.Setup(x => x.SystemEmail).Returns("test"); var mockConfig = new Mock <IAppConfig <IServiceConfigOptions> >(); mockConfig.Setup(x => x.Options).Returns(mockConfigOptions.Object); var service = new EnrichedTaskService(mockService.Object, mockLogger.Object, mockEmail.Object, mockConfig.Object); var response = service.InsertTask(request); Assert.IsNotNull(response.Exception); mockLogger.Verify(x => x.LogError(It.IsAny <object>(), "invalid", It.IsAny <ValidationException>()), Times.Once); mockEmail.Verify(x => x.SendEmail(It.IsAny <EmailArguments>()), Times.Once); }
public HttpResponseMessage Post([FromBody] TaskEditDTO task) { var request = new InsertTaskRequest { TaskProperties = task }; var response = new InsertTaskResponse(); try { response = _taskService.InsertTask(request); } catch (Exception ex) { response.Exception = ex; } return(_responseBuilder.BuildResponse(Request, response)); }
public void PostInvalidTest() { var input = new TaskEditDTO { Time = DateTime.Now, UserId = Guid.NewGuid() }; var expected = new InsertTaskResponse { Result = true, Exception = new ValidationException("name") }; var mockService = new Mock <ITaskService>(); mockService.Setup(x => x.InsertTask(It.IsAny <InsertTaskRequest>())).Returns(expected); var mockRespoonseBuilder = new Mock <IHttpResponseBuilder>(); var controller = new TaskController(mockService.Object, mockRespoonseBuilder.Object) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; mockRespoonseBuilder.Setup(x => x.BuildResponse(It.IsAny <HttpRequestMessage>(), expected)) .Returns(new HttpResponseMessage(HttpStatusCode.BadRequest) { Content = new StringContent(expected.Exception.Message) }); var response = controller.Post(input); bool result; response.TryGetContentValue(out result); Assert.IsFalse(result); Assert.AreEqual(HttpStatusCode.BadRequest, response.StatusCode); mockService.Verify(x => x.InsertTask(It.IsAny <InsertTaskRequest>()), Times.Once); }
public InsertTaskResponse InsertTask(InsertTaskRequest request) { var response = new InsertTaskResponse(); try { var newTask = _taskMapper.ConvertToDomainObject(request.TaskProperties); ThrowExceptionIfTaskIsInvalid(newTask); _taskRepository.Insert(newTask); _uow.Commit(); response.Result = true; return(response); } catch (Exception ex) { response.Exception = ex; return(response); } }
public void PostTest() { var input = new TaskEditDTO { Name = "test", Time = DateTime.Now, UserId = Guid.NewGuid() }; var expected = new InsertTaskResponse { Result = true }; var mockService = new Mock <ITaskService>(); mockService.Setup(x => x.InsertTask(It.IsAny <InsertTaskRequest>())).Returns(expected); var mockRespoonseBuilder = new Mock <IHttpResponseBuilder>(); var controller = new TaskController(mockService.Object, mockRespoonseBuilder.Object) { Request = new HttpRequestMessage(), Configuration = new HttpConfiguration() }; mockRespoonseBuilder.Setup(x => x.BuildResponse(controller.Request, expected)) .Returns(controller.Request.CreateResponse(HttpStatusCode.OK, expected.Result)); var response = controller.Post(input); bool result; response.TryGetContentValue(out result); Assert.IsTrue(result); Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); mockService.Verify(x => x.InsertTask(It.IsAny <InsertTaskRequest>()), Times.Once); }