public IActionResult Apply(ApplyForJobBindModel applyForJobBindModel)
        {
            ViewData["error"] = "";
            if ((!service.IsWorker()) || (!service.JobExists(applyForJobBindModel.Id)))
            {
                return(Redirect("/"));
            }
            Job job = service.GetJob(applyForJobBindModel.Id);

            if (service.AlreadyAppliedForJob(applyForJobBindModel.Id))
            {
                ViewData["error"] = "You have already applied for this job!";
                return(View());
            }
            if (string.IsNullOrEmpty(applyForJobBindModel.JobApplicationMessage ?? "".Trim()))
            {
                ViewData["error"] = "Job Application must be at least 5 symbols!";
                return(View());
            }
            User currentUser = service.GetCurrentUser();

            service.SignUpWorkerForJob
                (currentUser.WorkerAccountId, job.Id, applyForJobBindModel.JobApplicationMessage);
            ViewData["Success"]            = "Application sent successfully!";
            ViewData["NumberOfApplicants"] = job.Applicants.Count;
            ViewData["JobName"]            = job.Name;
            return(View());
        }
Example #2
0
        public void ReturnsCorrectlyWhenJobIdIsInvalid()
        {
            Mock <IApplyForJobService> mockedService =
                new Mock <IApplyForJobService>();
            ApplyForJobBindModel applyForJobBindModel = new ApplyForJobBindModel()
            {
                Id = 0,
                JobApplicationMessage = "asdfasdfasdf"
            };

            mockedService.Setup(a => a.JobExists(applyForJobBindModel.Id)).Returns(false);
            mockedService.Setup(a => a.IsWorker()).Returns(true);
            ApplyForJobController applyForJobController =
                new ApplyForJobController(mockedService.Object);
            IActionResult result = applyForJobController.Apply(applyForJobBindModel);

            Assert.That(result is RedirectResult);
        }
Example #3
0
        public void ReturnsCorrectlyWhenApplicationMessageIsInvalid()
        {
            Mock <IApplyForJobService> mockedService =
                new Mock <IApplyForJobService>();
            ApplyForJobBindModel applyForJobBindModel = new ApplyForJobBindModel()
            {
                Id = 4,
                JobApplicationMessage = ""
            };

            mockedService.Setup(a => a.JobExists(applyForJobBindModel.Id)).Returns(true);
            mockedService.Setup(a => a.IsWorker()).Returns(true);
            mockedService.Setup(a => a.AlreadyAppliedForJob(applyForJobBindModel.Id)).Returns(false);
            ApplyForJobController applyForJobController =
                new ApplyForJobController(mockedService.Object);
            ViewResult result = (ViewResult)applyForJobController.Apply(applyForJobBindModel);

            Assert.That(result.ViewData["error"].ToString() == "Job Application must be at least 5 symbols!");
        }
Example #4
0
        public void ReturnsCorrectlyWhenWorkerHasAlreadySignedUpForJob()
        {
            Mock <IApplyForJobService> mockedService =
                new Mock <IApplyForJobService>();
            ApplyForJobBindModel applyForJobBindModel = new ApplyForJobBindModel()
            {
                Id = 4,
                JobApplicationMessage = "asdfasdfasdf"
            };

            mockedService.Setup(a => a.JobExists(applyForJobBindModel.Id)).Returns(true);
            mockedService.Setup(a => a.IsWorker()).Returns(true);
            mockedService.Setup(a => a.AlreadyAppliedForJob(applyForJobBindModel.Id)).Returns(true);
            ApplyForJobController applyForJobController =
                new ApplyForJobController(mockedService.Object);
            ViewResult result = (ViewResult)applyForJobController.Apply(applyForJobBindModel);

            Assert.That(result.ViewData["error"].ToString() == "You have already applied for this job!");
        }
Example #5
0
        public void ReturnsCorrectlyWhenJobIsValidTriesToSignUpForJobButNotAWorker()
        {
            Mock <IApplyForJobService> mockedService =
                new Mock <IApplyForJobService>();
            ApplyForJobBindModel applyForJobBindModel = new ApplyForJobBindModel()
            {
                Id = 4,
                JobApplicationMessage = "hello. Please accept my application"
            };

            mockedService.Setup(a => a.JobExists(applyForJobBindModel.Id)).Returns(true);
            mockedService.Setup(a => a.IsWorker()).Returns(false);

            ApplyForJobController applyForJobController =
                new ApplyForJobController(mockedService.Object);
            IActionResult result = applyForJobController.Apply(applyForJobBindModel);

            Assert.That(result is RedirectResult);
        }