Exemplo n.º 1
0
        public async Task AddCourseShouldCorrectlyAddCourse()
        {
            var contextOptions = new DbContextOptionsBuilder <AcademySiteContext>()
                                 .UseInMemoryDatabase(databaseName: "AddCourseShouldCorrectlyAddCourse")
                                 .Options;

            var courseName = "SQL";
            var startDate  = DateTime.Now;
            var endDate    = DateTime.Now.AddDays(30);

            using (var context = new AcademySiteContext(contextOptions))
            {
                var teacher = new User()
                {
                    Id       = 1,
                    UserName = "******",
                    RoleId   = 2
                };

                context.Users.Add(teacher);

                context.SaveChanges();

                var courseService = new CourseService(context);

                await courseService.AddCourseAsync(1, startDate, endDate, courseName);

                Assert.AreEqual(1, context.Courses.Count());
                Assert.IsTrue(context.Courses.Any(co => co.Name == "SQL" && co.TeacherId == 1));
            }
        }
Exemplo n.º 2
0
        public async Task <IActionResult> AddCourseAsync([FromBody] dynamic model)
        {
            Course c = new Course();

            c.Name = "Computer Tech";
            //_context.Course.Add(c);
            var result = await _courseService.AddCourseAsync(model);

            return(Json(result));
        }
Exemplo n.º 3
0
        public async Task Test_Create_Course_Async()
        {
            _mockSet.As <IDbAsyncEnumerable <CourseDb> >().Setup(b => b.GetAsyncEnumerator()).Returns(new TestDbAsyncEnumerator <CourseDb>(_coursesDb.GetEnumerator()));
            _mockSet.As <IQueryable <CourseDb> >().Setup(b => b.Provider).Returns(new TestDbAsyncQueryProvider <CourseDb>(_coursesDb.Provider));

            _mockContext.Setup(c => c.Courses).Returns(_mockSet.Object);
            _mockRepo = new CourseRepository(_mockContext.Object);
            _mockMapper.Setup(m => m.Map <CourseInfo, CourseDb>(_oneCourseInfo)).Returns(_oneCourseDb);
            _service = new CourseService(_mockMapper.Object, _mockRepo);
            var result = await _service.AddCourseAsync(_oneCourseInfo);

            _mockSet.Verify(b => b.Add(It.IsAny <CourseDb>()), Times.Once());
            _mockContext.Verify(b => b.SaveChangesAsync(), Times.Once());
            result.IsSuccess.Should().BeTrue();
        }
Exemplo n.º 4
0
        public async Task addCourse_should_add_correct_entity()
        {
            var sut = new CourseService(_courseRepository, _courseMapper);

            var course = new AddCourseRequest()
            {
                Name      = "software engineering",
                TeacherId = 2,
                SeasonId  = 1
            };

            var addedCourse =
                await sut.AddCourseAsync(course);

            addedCourse.ShouldNotBeNull();
            addedCourse.Name.ShouldBe(course.Name);;
        }
Exemplo n.º 5
0
        public async Task AddCourseShouldThrowIfUserNotTeacher()
        {
            var contextOptions = new DbContextOptionsBuilder <AcademySiteContext>()
                                 .UseInMemoryDatabase(databaseName: "AddCourseShouldThrowIfUserNotTeacher")
                                 .Options;

            var courseName = "SQL";
            var startDate  = DateTime.Now;
            var endDate    = DateTime.Now.AddDays(30);

            using (var context = new AcademySiteContext(contextOptions))
            {
                var teacher = new User()
                {
                    Id       = 1,
                    UserName = "******",
                    RoleId   = 3
                };

                context.Users.Add(teacher);

                context.SaveChanges();

                var courseService = new CourseService(context);

                await Assert.ThrowsExceptionAsync <IncorrectPermissionsException>(async() => await courseService.AddCourseAsync(1, startDate, endDate, courseName));
            }
        }