public async Task Create(CreateApplicantBindingModel model)
        {
            if (model == null)
            {
                throw new ArgumentException("The applicant to create must have a value.");
            }

            var applicant = this.Mapper.Map <Applicant>(model);

            var statusId = InInterviewStatusId;

            applicant.CurrentStatus = statusId;

            applicant.Statuses = new List <AplicantStatus>()
            {
                new AplicantStatus
                {
                    StatusId = statusId,
                    Time     = DateTime.UtcNow
                }
            };

            await this.DbContext.Applicants.AddAsync(applicant);

            await this.DbContext.SaveChangesAsync();
        }
Example #2
0
        public async Task SetStatusInterview_WithProperStatus_ShouldSetCorrectly()
        {
            //Arrange

            var applicantId        = 1;
            var applicantFirstName = "New applicant firstName";
            var applicantLastName  = "New applicant lastName";

            var testId          = 1;
            var testDescription = "Description";
            var testUrl         = "https://www.mysite.bg/";
            var ResultUrl       = "https://www.resultMyTest.bg/";

            var applicantModel = new CreateApplicantBindingModel()
            {
                Id        = applicantId,
                FirstName = applicantFirstName,
                LastName  = applicantLastName,
            };

            await this.applicants.Create(applicantModel);

            var testModel = new InterviewerTestBindingModel()
            {
                Id          = testId,
                Description = testDescription,
                Url         = testUrl
            };

            await this.tests.Create(testModel);

            var interviewModel = new CreateOnlineInterviewBindingModel()
            {
                Id          = 1,
                ApplicantId = applicantModel.Id,
                TestId      = testModel.Id
            };

            await this.interviews.CreateOnline(interviewModel);

            var setResultModel = new AdminSetApplicantTestResult()
            {
                ApplicantId = applicantModel.Id,
                InterviewId = interviewModel.Id,
                ResultUrl   = ResultUrl
            };

            //Act

            await this.interviews.SetTestResult(setResultModel);

            //Assert

            var interview = this.dbContext.Interviews.First();

            Assert.AreEqual(ResultUrl, interview.Result.ResultUrl);
        }
Example #3
0
        public async Task CreateApplicant_WithNullApplicant_ShouldThrowException()
        {
            //Arrange

            CreateApplicantBindingModel applicantModel = null;

            //Act
            Func <Task> createApplicant = () => this.service.Create(applicantModel);

            //Assert
            await Assert.ThrowsExceptionAsync <ArgumentException>(createApplicant);
        }
Example #4
0
        public async Task <IActionResult> Create(CreateApplicantBindingModel model)
        {
            if (!ModelState.IsValid)
            {
                return(View());
            }

            await this.applicants.Create(model);

            TempData.AddSuccessMessage(string.Format(AddApplicantMessage, model.FirstName, model.LastName));

            return(this.RedirectToAction(nameof(Index)));
        }
        public async Task CreateInterview_WithProperInterview_ShouldCreateCorrectly()
        {
            //Arrange

            var applicantId        = 1;
            var applicantFirstName = "New applicant firstName";
            var applicantLastName  = "New applicant lastName";

            var testId          = 1;
            var testDescription = "Description";
            var testUrl         = "https://www.mysite.bg/";

            var applicantModel = new CreateApplicantBindingModel()
            {
                Id        = applicantId,
                FirstName = applicantFirstName,
                LastName  = applicantLastName,
            };

            await this.applicants.Create(applicantModel);

            var testModel = new InterviewerTestBindingModel()
            {
                Id          = testId,
                Description = testDescription,
                Url         = testUrl
            };

            await this.tests.Create(testModel);

            var interviewModel = new CreateOnlineInterviewBindingModel()
            {
                ApplicantId = applicantModel.Id,
                TestId      = testModel.Id
            };

            //Act
            await this.interviews.CreateOnline(interviewModel);

            //Assert

            var interview = this.dbContext.Interviews.First();

            Assert.AreEqual(applicantModel.Id, interview.ApplicantId);
            Assert.AreEqual(testModel.Id, interview.TestId);
        }
        public async Task OnlineInterviewDetails_WithInterviewId_ShouldReturnInterview()
        {
            //Arrange

            var applicantId        = 1;
            var applicantFirstName = "New applicant firstName";
            var applicantLastName  = "New applicant lastName";

            var testId          = 1;
            var testDescription = "Description";
            var testUrl         = "https://www.mysite.bg/";

            var applicantModel = new CreateApplicantBindingModel()
            {
                Id        = applicantId,
                FirstName = applicantFirstName,
                LastName  = applicantLastName,
            };

            await this.applicants.Create(applicantModel);

            var testModel = new InterviewerTestBindingModel()
            {
                Id          = testId,
                Description = testDescription,
                Url         = testUrl
            };

            await this.tests.Create(testModel);

            var interviewModel = new CreateOnlineInterviewBindingModel()
            {
                Id          = 1,
                ApplicantId = applicantModel.Id,
                TestId      = testModel.Id
            };

            await this.interviews.CreateOnline(interviewModel);

            //Act
            var interview = this.interviews.OnlineDetails(1);

            //Assert

            Assert.AreEqual(1, interview.Id);
        }
        public async Task OnlineInterviewDetails_WithNotExistingInterview_ShouldThrowException()
        {
            //Arrange

            var applicantId        = 1;
            var applicantFirstName = "New applicant firstName";
            var applicantLastName  = "New applicant lastName";

            var testId          = 1;
            var testDescription = "Description";
            var testUrl         = "https://www.mysite.bg/";

            var applicantModel = new CreateApplicantBindingModel()
            {
                Id        = applicantId,
                FirstName = applicantFirstName,
                LastName  = applicantLastName,
            };

            await this.applicants.Create(applicantModel);

            var testModel = new InterviewerTestBindingModel()
            {
                Id          = testId,
                Description = testDescription,
                Url         = testUrl
            };

            await this.tests.Create(testModel);

            var interviewModel = new CreateOnlineInterviewBindingModel()
            {
                Id          = 1,
                ApplicantId = applicantModel.Id,
                TestId      = testModel.Id
            };

            await this.interviews.CreateOnline(interviewModel);

            //Act
            Func <Task> interview = () => this.interviews.OnlineDetails(2);

            //Assert
            await Assert.ThrowsExceptionAsync <InvalidOperationException>(interview);
        }
Example #8
0
        public void Create_WithValidApplicant_ShouldCallService()
        {
            //Arrange
            var model = new CreateApplicantBindingModel();

            bool serviceCalled = false;

            var mockRepository = new Mock <IAdminApplicantService>();

            mockRepository.Setup(r => r.Create(model))
            .Callback(() => serviceCalled = true);

            var controller = new ApplicantsController(mockRepository.Object);

            //Act
            var result = controller.Create(model);

            //Assert
            Assert.IsTrue(serviceCalled);
        }
Example #9
0
        public async Task CreateApplicant_WithProperApplicant_ShouldCreateCorrectly()
        {
            //Arrange

            var applicantFirstName = "New applicant firstName";
            var applicantLastName  = "New applicant lastName";

            var applicantModel = new CreateApplicantBindingModel()
            {
                FirstName = applicantFirstName,
                LastName  = applicantLastName,
            };

            //Act
            await this.service.Create(applicantModel);

            //Assert

            var applicant = this.dbContext.Applicants.First();

            Assert.AreEqual(applicantFirstName, applicant.FirstName);
            Assert.AreEqual(applicantLastName, applicant.LastName);
        }