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(); }
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); }
public async Task CreateApplicant_WithNullApplicant_ShouldThrowException() { //Arrange CreateApplicantBindingModel applicantModel = null; //Act Func <Task> createApplicant = () => this.service.Create(applicantModel); //Assert await Assert.ThrowsExceptionAsync <ArgumentException>(createApplicant); }
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); }
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); }
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); }