public async Task ReturnCreatedAtRouteResponseWhenCourseCreated() { var newCourseviewModelForCreate = new CourseForCreateViewModel { Name = "Film Study", TeacherName = "Stanley Kubrick" }; var newCourse = new Course { Id = 4, Name = "Film Study", TeacherName = "Stanley Kubrick" }; _mapper.Setup(m => m.Map <Course>(It.IsAny <CourseForCreateViewModel>())) .Returns(newCourse); var courseCtrl = new CourseController(_mapper.Object, _courseService.Object); var actual = await courseCtrl.Post(newCourseviewModelForCreate); var okResult = Assert.IsType <CreatedAtRouteResult>(actual); var course = Assert.IsType <CourseForCreateViewModel>(okResult.Value); Assert.Equal("Film Study", course.Name); }
public async Task ReturnCreatedAtRouteResponseIfEverythingIsFine() { var courseToAdd = new CourseForCreateViewModel() { Name = "Film Study", TeacherName = "Stanley Kubrick", Location = "Building 6 Room 601", Students = new List <CourseStudentForCreateViewModel>() { new CourseStudentForCreateViewModel() { StudentId = 4 }, new CourseStudentForCreateViewModel() { StudentId = 5 }, new CourseStudentForCreateViewModel() { StudentId = 5 } } }; var response = await Client.PostAsJsonAsync <CourseForCreateViewModel>("/api/course", courseToAdd); response.EnsureSuccessStatusCode(); var responseString = await response.Content.ReadAsStringAsync(); }
public async Task ReturnUnprocessableEntityResponseIfModelstateNotValid() { var courseToAdd = new CourseForCreateViewModel(); var response = await Client.PostAsJsonAsync <CourseForCreateViewModel>("/api/course", courseToAdd); var responseString = await response.Content.ReadAsStringAsync(); Assert.Equal(HttpStatusCode.UnprocessableEntity, response.StatusCode); Assert.Contains("The Name field is required.", responseString); Assert.Contains("The TeacherName field is required.", responseString); Assert.Contains("The Location field is required.", responseString); }
public async Task <ActionResult> Post([FromBody] CourseForCreateViewModel courseViewModelForCreate) { if (courseViewModelForCreate == null) { return(BadRequest("Request body is null.")); } var course = new Course(); _mapper.Map(courseViewModelForCreate, course); if (await _courseService.CreateAsync(course) > 0) { return(CreatedAtRoute("GetCourseById", new { Id = course.Id }, courseViewModelForCreate)); } return(StatusCode(500)); }
private List <CourseStudent> FillCourseStudentForCreate(CourseForCreateViewModel coVM, Course course) { var courseStudents = new List <CourseStudent>(); foreach (var item in coVM.Students.GroupBy(x => x.StudentId).Select(x => x.First()).ToList()) { if (item.StudentId != null) { courseStudents.Add(new CourseStudent() { Course = course, StudentId = item.StudentId.Value }); } } return(courseStudents); }
public async Task CreateCourse() { var options = new DbContextOptionsBuilder <UniversityContext>() .UseInMemoryDatabase(databaseName: "Add_to_controller") .Options; using (var context = new UniversityContext(options)) { var courseViewModelForCreate = new CourseForCreateViewModel() { Name = "English", TeacherName = "William Shakespeare", }; var service = new CourseService(context); var ctrl = new CourseController(_mapper, service); var result = await ctrl.Post(courseViewModelForCreate); var okResult = Assert.IsType <CreatedAtRouteResult>(result); var course = Assert.IsType <CourseForCreateViewModel>(okResult.Value); Assert.Equal("English", course.Name); } }