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);
        }
Example #3
0
        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);
        }
Example #5
0
        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);
        }