public async Task CreateRemark_WithCorrectData_ShouldSuccessfullyCreateRemark() { string errorMessagePrefix = "RemarkService CreateRemarkAsync() does not work properly."; var context = NetBookDbContextInMemoryFactory.InitializeContext(); await this.SeedData(context); this.remarkService = new RemarkService(context); var student = new Student { Id = "CreateRemark", Remarks = new List <Remark>(), Class = new Class() }; await context.Students.AddAsync(student); await context.SaveChangesAsync(); var testRemark = new RemarkServiceModel { Id = "TestRemark", StudentId = student.Id, Student = student.To <StudentServiceModel>() }; var actualResult = await this.remarkService.CreateRemarkAsync(testRemark); var studentRemarks = context.Students.Find(student.Id).Remarks; Assert.True(actualResult, errorMessagePrefix); Assert.True(studentRemarks.Contains(context.Remarks.Find(testRemark.Id)), errorMessagePrefix + " " + "Remark is not added to student."); }
public async Task CreateRemark_WithNonExistentStudent_ShouldThrowArgumentNullException() { string errorMessagePrefix = "RemarkService CreateRemarkAsync() does not work properly."; var context = NetBookDbContextInMemoryFactory.InitializeContext(); await this.SeedData(context); this.remarkService = new RemarkService(context); var testRemark = new RemarkServiceModel(); await Assert.ThrowsAsync <ArgumentNullException>(async() => await this.remarkService.CreateRemarkAsync(testRemark)); }
public async Task <bool> CreateRemarkAsync(RemarkServiceModel model) { var remark = Mapper.Map <Remark>(model); var student = await this.context.Students.Include(c => c.Class).SingleOrDefaultAsync(s => s.Id == model.StudentId); if (student == null) { throw new ArgumentNullException(nameof(student)); } student.Remarks.Add(remark); this.context.Remarks.Update(remark); await this.context.Remarks.AddAsync(remark); int result = await this.context.SaveChangesAsync(); return(result > 0); }