public async Task update_should_modify_existing_teacher() { var client = _factory.CreateClient(); var request = new EditTeacherRequest() { Id = 1, Firstname = "Daniel", Lastname = "Diaz", SchoolId = 1 }; var httpsContent = new StringContent(JsonConvert.SerializeObject(request), Encoding.UTF8, "application/json"); var response = await client.PutAsync("/api/teachers", httpsContent); response.ShouldNotBeNull(); response.EnsureSuccessStatusCode(); var responseContent = await response.Content.ReadAsStringAsync(); var responseEntity = JsonConvert.DeserializeObject <Teacher>(responseContent); responseEntity.ShouldNotBeNull(); responseEntity.Firstname.ShouldBe("Daniel"); responseEntity.Id.ShouldBe(1); responseEntity.Lastname.ShouldBe("Diaz"); }
public Teacher Map(EditTeacherRequest request) { if (request == null) { return(null); } var teacher = new Teacher { Id = request.Id, Firstname = request.Firstname, Lastname = request.Lastname, SchoolId = request.SchoolId, }; return(teacher); }
public async Task <TeacherResponse> EditTeacherAsync(EditTeacherRequest request) { var existingRecord = _teacherRepository.ReadOnlyGetByIdAsync(request.Id); if (existingRecord == null) { throw new ArgumentException($"Entity with {request.Id} is not present"); } var entity = _teacherMapper.Map(request); var result = _teacherRepository.Update(entity); await _teacherRepository.UnitOfWork.SaveChangesAsync(); var editedTeacher = await _teacherRepository.ReadOnlyGetByIdAsync(result.Id); return(_teacherMapper.Map(editedTeacher)); }
public async Task editTeacher_should_correctly_edit_entity() { var teacher = new EditTeacherRequest() { Id = 3, Firstname = "Jan", Lastname = "Parson", ClassIds = null, CourseIds = null, SchoolId = 1 }; var editedTeacher = await _sut.EditTeacherAsync(teacher); editedTeacher.ShouldNotBeNull(); editedTeacher.Id.ShouldBe(teacher.Id); editedTeacher.Firstname.ShouldBe(teacher.Firstname); }
public async Task <IActionResult> Put(EditTeacherRequest request) { var result = await _teacherService.EditTeacherAsync(request); return(Ok(result)); }