示例#1
0
        public async Task Register_ReturnsCorrectJson_WhenTaskIsClosed()
        {
            const TaskResultStatus volunteerTaskSignUpResultStatus = TaskResultStatus.Failure_ClosedTask;

            var model    = new VolunteerTaskSignupViewModel();
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model)))
            .ReturnsAsync(new VolunteerTaskSignupResult
            {
                Status = volunteerTaskSignUpResultStatus
            });

            var sut = new TaskApiController(mediator.Object, null, null);

            var jsonResult = await sut.RegisterTask(model) as JsonResult;

            var successStatus = jsonResult.GetValueForProperty <bool>("isSuccess");
            var errors        = jsonResult.GetValueForProperty <string[]>("errors");

            Assert.False(successStatus);
            Assert.NotNull(errors);
            Assert.Single(errors);
            Assert.Equal("Signup failed - Task is closed", errors[0]);
        }
示例#2
0
        public async Task Register_ReturnsCorrectJson_WhenApiResult_IsSuccess()
        {
            const TaskResultStatus volunteerTaskSignUpResultStatus = TaskResultStatus.Success;
            var model    = new VolunteerTaskSignupViewModel();
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model)))
            .ReturnsAsync(new VolunteerTaskSignupResult
            {
                Status        = volunteerTaskSignUpResultStatus,
                VolunteerTask = new VolunteerTask {
                    Id = 1, Name = "Task"
                }
            });

            var sut = new TaskApiController(mediator.Object, null, null);

            var jsonResult = await sut.RegisterTask(model) as JsonResult;

            var successStatus      = jsonResult.GetValueForProperty <bool>("isSuccess");
            var volunteerTaskModel = jsonResult.GetValueForProperty <VolunteerTaskViewModel>("task");

            Assert.True(successStatus);
            Assert.NotNull(volunteerTaskModel);
        }
        public async Task Register_ReturnsCorrectJson_WhenTaskNotFound()
        {
            const string volunteerTaskSignUpResultStatus = VolunteerTaskSignupResult.FAILURE_TASKNOTFOUND;

            var model    = new VolunteerTaskSignupViewModel();
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model)))
            .ReturnsAsync(new VolunteerTaskSignupResult
            {
                Status = volunteerTaskSignUpResultStatus
            });

            var sut = new TaskApiController(mediator.Object, null, null);

            var jsonResult = await sut.RegisterTask(model) as JsonResult;

            var successStatus = jsonResult.GetValueForProperty <bool>("isSuccess");
            var errors        = jsonResult.GetValueForProperty <string[]>("errors");

            Assert.False(successStatus);
            Assert.NotNull(errors);
            Assert.Equal(1, errors.Count());
            Assert.Equal("Signup failed - The task could not be found", errors[0]);
        }
示例#4
0
        public async Task <ActionResult> RegisterTask(VolunteerTaskSignupViewModel signupModel)
        {
            if (signupModel == null)
            {
                return(BadRequest());
            }

            if (!ModelState.IsValid)
            {
                // this condition should never be hit because client side validation is being performed
                // but just to cover the bases, if this does happen send the erros to the client
                return(Json(new { errors = ModelState.GetErrorMessages() }));
            }

            var result = await _mediator.SendAsync(new VolunteerTaskSignupCommand { TaskSignupModel = signupModel });

            switch (result.Status)
            {
            case TaskResultStatus.Success:
                return(Json(new
                {
                    isSuccess = true,
                    task = result.VolunteerTask == null ? null : new VolunteerTaskViewModel(result.VolunteerTask, signupModel.UserId)
                }));

            case TaskResultStatus.Failure_ClosedTask:
                return(Json(new
                {
                    isSuccess = false,
                    errors = new[] { "Signup failed - Task is closed" },
                }));

            case TaskResultStatus.Failure_EventNotFound:
                return(Json(new
                {
                    isSuccess = false,
                    errors = new[] { "Signup failed - The event could not be found" },
                }));

            case TaskResultStatus.Failure_TaskNotFound:
                return(Json(new
                {
                    isSuccess = false,
                    errors = new[] { "Signup failed - The task could not be found" },
                }));

            default:
                return(Json(new
                {
                    isSuccess = false,
                    errors = new[] { "Unkown error" },
                }));
            }
        }
        public void SetTaskIdAndTaskName_WhenTaskSignupsTaskIsNotNull()
        {
            var volunteerTaskSignup = new VolunteerTaskSignup {
                VolunteerTask = new VolunteerTask {
                    Id = 1, Name = "TaskName"
                }
            };
            var sut = new VolunteerTaskSignupViewModel(volunteerTaskSignup);

            Assert.Equal(sut.VolunteerTaskId, volunteerTaskSignup.VolunteerTask.Id);
            Assert.Equal(sut.VolunteerTaskName, volunteerTaskSignup.VolunteerTask.Name);
        }
        public void SetUserIdAndUserName_WhenTaskSignupsUserIsNotNull()
        {
            var volunteerTaskSignup = new VolunteerTaskSignup {
                User = new ApplicationUser {
                    Id = "1", UserName = "******"
                }
            };
            var sut = new VolunteerTaskSignupViewModel(volunteerTaskSignup);

            Assert.Equal(sut.UserId, volunteerTaskSignup.User.Id);
            Assert.Equal(sut.UserName, volunteerTaskSignup.User.UserName);
        }
示例#7
0
        public async Task RegisterTaskSendsTaskSignupCommandWithCorrectTaskSignupModel()
        {
            var model    = new VolunteerTaskSignupViewModel();
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(y => y.TaskSignupModel == model))).ReturnsAsync(new VolunteerTaskSignupResult());

            var sut = new TaskApiController(mediator.Object, null, null);
            await sut.RegisterTask(model);

            mediator.Verify(x => x.SendAsync(It.Is <VolunteerTaskSignupCommand>(command => command.TaskSignupModel.Equals(model))));
        }