示例#1
0
        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.");
        }
示例#2
0
        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));
        }
示例#3
0
        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);
        }