Example #1
0
        public async Task RegisterActivitySendsActivitySignupCommandAsyncWithCorrectData()
        {
            var model    = new ActivitySignupViewModel();
            var mediator = new Mock <IMediator>();

            var sut = new ActivityApiController(mediator.Object);
            await sut.RegisterActivity(model);

            mediator.Verify(x => x.SendAsync(It.Is <ActivitySignupCommand>(command => command.ActivitySignup.Equals(model))));
        }
Example #2
0
        public async Task RegisterTaskSendsTaskSignupCommandWithCorrectTaskSignupModel()
        {
            var model    = new ActivitySignupViewModel();
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.Is <TaskSignupCommand>(y => y.TaskSignupModel == model))).Returns(Task.FromResult(new TaskSignupResult()));

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

            mediator.Verify(x => x.SendAsync(It.Is <TaskSignupCommand>(command => command.TaskSignupModel.Equals(model))));
        }
Example #3
0
        public async Task RegisterTaskReturnsNullForTaskIfTaskIsNull()
        {
            var model    = new ActivitySignupViewModel();
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.Is <TaskSignupCommand>(y => y.TaskSignupModel == model))).Returns(Task.FromResult(new TaskSignupResult()));

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

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

            var result = jsonResult.GetValueForProperty <string>("Task");

            Assert.Null(result);
        }
Example #4
0
        public async Task <IActionResult> Signup(ActivitySignupViewModel signupModel)
        {
            if (signupModel == null)
            {
                return(HttpBadRequest());
            }

            if (ModelState.IsValid)
            {
                await _mediator.SendAsync(new ActivitySignupCommand { ActivitySignup = signupModel });
            }

            //TODO: handle invalid activity signup info (phone, email) in a useful way
            //  would be best to handle it in KO on the client side (prevent clicking Volunteer)

            return(RedirectToAction(nameof(ShowActivity), new { id = signupModel.ActivityId }));
        }
Example #5
0
        public async Task RegisterTaskReturnsCorrectValueForStatus()
        {
            const string taskSignUpResultStatus = "status";
            var          model    = new ActivitySignupViewModel();
            var          mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.Is <TaskSignupCommand>(y => y.TaskSignupModel == model))).Returns(Task.FromResult(new TaskSignupResult {
                Status = taskSignUpResultStatus
            }));

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

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

            var result = jsonResult.GetValueForProperty <string>("Status");

            Assert.Equal(result, taskSignUpResultStatus);
        }
Example #6
0
        public async Task <ActionResult> RegisterTask(ActivitySignupViewModel signupModel)
        {
            if (signupModel == null)
            {
                return(HttpBadRequest());
            }

            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 TaskSignupCommand { TaskSignupModel = signupModel });

            return(Json(new { result.Status, Task = result.Task == null ? null : new TaskViewModel(result.Task, signupModel.UserId) }));
        }
        public async Task <object> RegisterActivity(ActivitySignupViewModel signupModel)
        {
            if (signupModel == null)
            {
                return(HttpBadRequest());
            }

            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() }));
            }

            await _mediator.SendAsync(new ActivitySignupCommand { ActivitySignup = signupModel });

            return(new { Status = "success" });
        }
Example #8
0
        public async Task RegisterTaskReturnsTaskViewModelIfTaskIsNotNull()
        {
            var model = new ActivitySignupViewModel {
                UserId = "userId"
            };
            var mediator = new Mock <IMediator>();

            mediator.Setup(x => x.SendAsync(It.Is <TaskSignupCommand>(y => y.TaskSignupModel == model))).Returns(Task.FromResult(new TaskSignupResult {
                Task = new AllReadyTask()
            }));

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

            var result = jsonResult.GetValueForProperty <TaskViewModel>("Task");

            Assert.IsType <JsonResult>(jsonResult);
            Assert.IsType <TaskViewModel>(result);
        }