public async Task UpdateInternshipShould_ReturnOkObjectResult() { moqUserManager.Setup(_ => _.GetUserAsync(It.IsAny <ClaimsPrincipal>())). ReturnsAsync(new User()); moqUserService.Setup(_ => _.GetCompany(It.IsAny <User>())) .ReturnsAsync(new Company()); moqInternshipService.Setup(_ => _.Update(It.IsAny <InternshipUpdate>(), It.IsAny <Company>())) .ReturnsAsync(new Internship()); InternshipUpdate model = new InternshipUpdate { Activities = new List <string>() { "abc" }, AdditionalRemarks = "abc", AssignedStudents = new List <string>() { "abc" }, Description = "abc", Environment = new List <string>() { "abc" }, ExtraRequirements = "abc", PeriodOfInternship = new List <string>() { "abc" }, RequiredFieldsOfStudy = new List <string>() { "abc" }, RequiredStudentsAmount = 1, ResearchTheme = "abc", TechnicalDescription = "abc", Title = "abc", ID = Guid.NewGuid() }; var result = await sut.UpdateInternship(model); Assert.That(result, Is.TypeOf <OkObjectResult>()); }
public async Task <IActionResult> UpdateInternship([FromBody] InternshipUpdate model) { var user = await _userManager.GetUserAsync(User); if (user == null) { return(Unauthorized()); } var result = await _service.Update(model, await _userService.GetCompany(user)); if (result == null) { return(BadRequest()); } return(Ok(result)); }
public async Task <Internship> Update(InternshipUpdate entity, Company user) { var existing = await Get(entity.ID); if (existing == null || existing?.InternshipState != InternshipState.RejectedByAll || existing.CreatorId != user.Id) { return(null); } if (existing.Title == entity.Title && existing.RequiredFieldsOfStudy.SequenceEqual(entity.RequiredFieldsOfStudy) && existing.Description == entity.Description && existing.Environment.SequenceEqual(entity.Environment) && existing.TechnicalDescription == entity.TechnicalDescription && existing.ExtraRequirements == entity.ExtraRequirements && existing.ResearchTheme == entity.ResearchTheme && existing.RequiredStudentsAmount == entity.RequiredStudentsAmount && existing.AdditionalRemarks == entity.AdditionalRemarks && existing.Periods.SequenceEqual(entity.PeriodOfInternship) && existing.AssignedStudents.SequenceEqual(entity.AssignedStudents) && existing.Activities.SequenceEqual(entity.Activities)) { return(null); } existing.Title = entity.Title; existing.RequiredFieldsOfStudy = entity.RequiredFieldsOfStudy; existing.Description = entity.Description; existing.Environment = entity.Environment; existing.TechnicalDescription = entity.TechnicalDescription; existing.ExtraRequirements = entity.ExtraRequirements; existing.ResearchTheme = entity.ResearchTheme; existing.Activities = entity.Activities; existing.RequiredStudentsAmount = entity.RequiredStudentsAmount; existing.AssignedStudents = entity.AssignedStudents; existing.AdditionalRemarks = entity.AdditionalRemarks; existing.Periods = entity.PeriodOfInternship; existing.InternshipState = InternshipState.InReviewByTeacher; existing.DateOfState = DateTime.UtcNow; foreach (var reviewer in existing.Reviewers) { reviewer.Feedback = null; reviewer.StateOfTeacher = InternshipState.InReviewByTeacher; } _context.Update(existing); await Save(); return(existing); }
public void Setup() { _context = ContextHelper.GetDatabaseContext(); sut = new InternshipService(_context); dto = new InternshipCreationDto { RequiredFieldsOfStudy = new List <string>(), AssignedStudents = new List <string>(), Environment = new List <string>(), TechnicalDescription = "TechnicalDescription", ExtraRequirements = "ExtraRequirements", ResearchTheme = "ResearchTheme", Activities = new List <string>(), RequiredStudentsAmount = 2, AdditionalRemarks = "AdditionalRemarks", PeriodOfInternship = new List <string>(), Description = "Description" }; for (int i = 0; i < 10; i++) { dto.RequiredFieldsOfStudy.Add("ReqFOS" + i); dto.AssignedStudents.Add("AssignedStudent" + i); dto.Environment.Add("Environment" + i); dto.Activities.Add("Activity" + i); dto.PeriodOfInternship.Add("Period" + i); } internship = new Internship { CreatorId = Guid.NewGuid(), RequiredFieldsOfStudy = dto.RequiredFieldsOfStudy, AssignedStudents = dto.AssignedStudents, Environment = dto.Environment, TechnicalDescription = "TechnicalDescription", ExtraRequirements = "ExtraRequirements", ResearchTheme = "ResearchTheme", Activities = dto.Activities, RequiredStudentsAmount = 2, AdditionalRemarks = "AdditionalRemarks", Id = Guid.NewGuid(), InternshipState = 0, Periods = dto.PeriodOfInternship, Description = "Description", DateOfState = DateTime.UtcNow }; userTeacher = new User { Id = Guid.NewGuid(), City = "City", Email = "*****@*****.**", FirstName = "John", HouseNumber = 18, LastName = "Doe", PasswordHash = Guid.NewGuid().ToString(), PhoneNumber = "+3259874896", ZipCode = 7890, UserName = "******", StreetName = "Easy Street" }; userTeacher2 = new User { Id = Guid.NewGuid(), City = "City", Email = "*****@*****.**", FirstName = "John", HouseNumber = 18, LastName = "Doe", PasswordHash = Guid.NewGuid().ToString(), PhoneNumber = "+3259874896", ZipCode = 7890, UserName = "******", StreetName = "Easy Street" }; company = new Company { Id = internship.CreatorId }; ReviewerInternships reviewerInternships = new ReviewerInternships { ReviewedInternship = internship, Reviewer = userTeacher }; reviewerList = new List <ReviewerInternships> { reviewerInternships }; internship.Reviewers = reviewerList; IFCDto = new InternshipFeedbackCoordinatorDto { Feedback = "coordinator", InternshipId = internship.Id, ReviewedState = InternshipState.ApprovedByAll }; IFTDto = new InternshipFeedbackTeacherDto { Feedback = "teacher", InternshipId = internship.Id, TeacherId = userTeacher.Id }; updateDto = new InternshipUpdate { ID = internship.Id, ResearchTheme = "ResearchTheme", Description = "DescriptionUpdate", Activities = new List <string>() { "test" }, AdditionalRemarks = "test", AssignedStudents = new List <string>() { "Jan" }, Environment = new List <string>() { "test" }, ExtraRequirements = "test", PeriodOfInternship = new List <string>() { "test" }, RequiredFieldsOfStudy = new List <string>() { "AON" }, RequiredStudentsAmount = 1, TechnicalDescription = "test", Title = "test" }; _context.Add(reviewerInternships); _context.Add(userTeacher); _context.Add(internship); _context.SaveChanges(); }