示例#1
0
        public void AddRange_CourseFromListAlreadyExist_PreexistingEntityExceptionWillBeThrown()
        {
            // arrange
            var newCourses = new List <Course> {
                new Course()
                {
                    Name = "Swimming", CourseType = _internalCT, CourseTypeId = _internalCT.Id, IsDeleted = false
                },
                new Course()
                {
                    Name = "Chess", CourseType = _internalCT, CourseTypeId = _internalCT.Id, IsDeleted = false
                },
                new Course()
                {
                    Name = "Hockey", CourseType = _externalCT, CourseTypeId = _externalCT.Id, IsDeleted = false
                }
            };

            _courseRepository.Setup(m => m.Find(It.IsAny <Expression <Func <Course, bool> > >(), null, ""))
            .Returns(() => {
                return(new List <Course>()
                {
                    new Course()
                });
            });

            var courseService = new CourseService(_courseRepository.Object);

            courseService.CourseTypeService = _courseTypeService.Object;

            // act and assert
            Assert.Throws <PreexistingEntityException>(() => courseService.AddRange(newCourses));
            _courseRepository.Verify(cr => cr.Find(It.IsAny <Expression <Func <Course, bool> > >(), null, ""));
        }
示例#2
0
        public void AddRange_ListOfCourses_CoursesGetNewIds()
        {
            // arrange
            var newCourses = new List <Course> {
                new Course()
                {
                    Name = "Swimming", CourseType = _internalCT, CourseTypeId = _internalCT.Id, IsDeleted = false
                },
                new Course()
                {
                    Name = "Cards", CourseType = _internalCT, CourseTypeId = _internalCT.Id, IsDeleted = false
                },
                new Course()
                {
                    Name = "Hockey", CourseType = _externalCT, CourseTypeId = _externalCT.Id, IsDeleted = false
                }
            };

            var expectedIds = new int[] { 10, 11, 12 };

            _courseRepository.Setup(m => m.AddRange(It.IsAny <IEnumerable <Course> >()))
            .Callback((IEnumerable <Course> courses) => {});

            var courseService = new CourseService(_courseRepository.Object);

            courseService.CourseTypeService = _courseTypeService.Object;

            // act
            courseService.AddRange(newCourses);

            // assert
            _courseRepository.Verify(cr => cr.AddRange(It.IsAny <IEnumerable <Course> >()));
        }
示例#3
0
        public void AddRange_CoursesListIsEmptyOrNull_ArgumentNullExceptionWillBeThrown()
        {
            // arrange
            var courseService = new CourseService(_courseRepository.Object);

            courseService.CourseTypeService = _courseTypeService.Object;

            // act and assert
            Assert.Throws <ArgumentNullException>(() => courseService.AddRange(null));
        }
示例#4
0
        public async Task <IActionResult> AddRange([FromBody] List <CourseViewModel> courseViewModel)
        {
            try
            {
                List <Course> courses = new List <Course>();

                foreach (var c in courseViewModel)
                {
                    Course course = new Course()
                    {
                        Name              = c.Name,
                        CategoryId        = c.CategoryId,
                        LecturerId        = c.LecturerId,
                        ImageUrl          = c.ImageUrl,
                        Price             = c.Price,
                        Discount          = c.Discount,
                        ShortDiscription  = c.ShortDiscription,
                        DetailDiscription = c.DetailDiscription,
                        LastUpdated       = DateTime.Now,
                        StatusId          = c.StatusId
                    };

                    courses.Add(course);
                }


                await courseService.AddRange(courses);

                return(Ok(new
                {
                    Results = courses
                }));
            }
            catch (Exception e)
            {
                Console.WriteLine($"ErrorMesages: {e}");

                return(BadRequest(new
                {
                    Errors = new { Code = "InvalidInputParameters", Description = "Invalid Input Parameters!" }
                }));
            }
        }