예제 #1
0
 public ApiResult<GetTaskResult> Get(int id)
 {
     var query = new TaskByIdQuery(id);
     var task = mediator.Request(query);
     var getTaskResult = new GetTaskResult(task);
     return new ApiResult<GetTaskResult>(getTaskResult);
 }
예제 #2
0
        public void Execute_Returns_Null_Task_When_Id_Not_Found()
        {
            // Setup
            InitializeTestEntities();
            var authMock = new Mock<IProcess<TaskAuthorizationParams, AuthorizationResultViewModel>>();
            authMock.Setup(x => x.Execute(It.IsAny<TaskAuthorizationParams>())).Returns(new AuthorizationResultViewModel { UserAuthorized = true });
            int id = _task2.Id + 100;

            // Act
            Task result = new TaskByIdQuery(_unitOfWork, authMock.Object).WithTaskId(id).Execute();

            // Verify
            Assert.IsNull(result, "Query returned a non-null task");
        }
예제 #3
0
        public void Can_Get_Task_By_ID()
        {
            // Setup
            InitializeTestEntities();
            var authMock = new Mock<IProcess<TaskAuthorizationParams, AuthorizationResultViewModel>>();
            authMock.Setup(x => x.Execute(It.IsAny<TaskAuthorizationParams>())).Returns(new AuthorizationResultViewModel { UserAuthorized = true });

            // Act
            Task result = new TaskByIdQuery(_unitOfWork, authMock.Object).WithTaskId(_task2.Id).Execute();

            // Verify
            Assert.IsNotNull(result, "Query returned a null task");
            Assert.AreEqual(_task2.Id, result.Id, "Returned task had an incorrect id value");
            Assert.AreEqual(_task2.Name, result.Name, "Returned task had an incorrect name value");
        }
예제 #4
0
        public void Execute_Returns_Null_Task_When_Id_Not_Found()
        {
            // Setup
            InitializeTestEntities();
            var authMock = new Mock <IProcess <TaskAuthorizationParams, AuthorizationResultViewModel> >();

            authMock.Setup(x => x.Execute(It.IsAny <TaskAuthorizationParams>())).Returns(new AuthorizationResultViewModel {
                UserAuthorized = true
            });
            int id = _task2.Id + 100;

            // Act
            Task result = new TaskByIdQuery(_unitOfWork, authMock.Object).WithTaskId(id).Execute();

            // Verify
            Assert.IsNull(result, "Query returned a non-null task");
        }
예제 #5
0
        public void Execute_Returns_Null_Task_When_Not_Authorized()
        {
            // Setup
            InitializeTestEntities();
            var authMock = new Mock<IProcess<TaskAuthorizationParams, AuthorizationResultViewModel>>();
            authMock.Setup(x => x.Execute(It.IsAny<TaskAuthorizationParams>())).Returns(new AuthorizationResultViewModel { UserAuthorized = false });

            // Act
            Task result = new TaskByIdQuery(_unitOfWork, authMock.Object)
                                .WithTaskId(_task2.Id)
                                .RequestedByUserId(15)
                                .Execute();

            // Verify
            Assert.IsNull(result, "Query returned a non-null task");
            authMock.Verify(x => x.Execute(It.Is<TaskAuthorizationParams>(y => y.RequestingUserId == 15)));
        }
예제 #6
0
        public void Can_Get_Task_By_ID()
        {
            // Setup
            InitializeTestEntities();
            var authMock = new Mock <IProcess <TaskAuthorizationParams, AuthorizationResultViewModel> >();

            authMock.Setup(x => x.Execute(It.IsAny <TaskAuthorizationParams>())).Returns(new AuthorizationResultViewModel {
                UserAuthorized = true
            });

            // Act
            Task result = new TaskByIdQuery(_unitOfWork, authMock.Object).WithTaskId(_task2.Id).Execute();

            // Verify
            Assert.IsNotNull(result, "Query returned a null task");
            Assert.AreEqual(_task2.Id, result.Id, "Returned task had an incorrect id value");
            Assert.AreEqual(_task2.Name, result.Name, "Returned task had an incorrect name value");
        }
        public async Task <TaskDto> Handle(TaskByIdQuery request, CancellationToken cancellationToken)
        {
            if (request == null)
            {
                throw new ArgumentNullException(nameof(request));
            }

            var task = await _context.Tasks
                       .Include(t => t.Performer)
                       .Include(t => t.Project)
                       .SingleOrDefaultAsync(t => t.Id == request.Id, cancellationToken);

            if (task is null)
            {
                throw new NotFoundException(nameof(task));
            }

            return(_mapper.Map <TaskDto>(task));
        }
예제 #8
0
        public void Execute_Returns_Null_Task_When_Not_Authorized()
        {
            // Setup
            InitializeTestEntities();
            var authMock = new Mock <IProcess <TaskAuthorizationParams, AuthorizationResultViewModel> >();

            authMock.Setup(x => x.Execute(It.IsAny <TaskAuthorizationParams>())).Returns(new AuthorizationResultViewModel {
                UserAuthorized = false
            });

            // Act
            Task result = new TaskByIdQuery(_unitOfWork, authMock.Object)
                          .WithTaskId(_task2.Id)
                          .RequestedByUserId(15)
                          .Execute();

            // Verify
            Assert.IsNull(result, "Query returned a non-null task");
            authMock.Verify(x => x.Execute(It.Is <TaskAuthorizationParams>(y => y.RequestingUserId == 15)));
        }
예제 #9
0
 public ActionResult Show(TaskByIdQuery query)
 {
     var task = mediator.Request(query);
     var model = new TaskViewModel(task);
     return View("Show", model);
 }
예제 #10
0
 public ActionResult Edit(TaskByIdQuery query)
 {
     var task = mediator.Request(query);
     var model = new TaskInputModel(task);
     return View("Edit", model);
 }
 public void Get_Edit_should_request_task_by_id()
 {
     var query = new TaskByIdQuery(1);
     tasksController.Edit(query);
     mockMediator.Verify(x => x.Request(query), Times.Once());
 }
 public Task <IActionResult> GetTaskById(TaskByIdQuery query) => ExecuteQuery(query);