Example #1
0
        public async Task AddResultToUsersCourses_ShouldThrow_IfCourseNotExist()
        {
            var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder();
            var courseUserRepo          = coursesUsersRepoBuilder
                                          .WithAll()
                                          .Build();

            var coursesRepoBuilder = new CoursesRepositoryBuilder();
            var courseRepo         = coursesRepoBuilder
                                     .WithAll()
                                     .Build();

            var sut = new CoursesService(courseUserRepo, courseRepo, null, Mapper);

            var user = new GoUser {
                Id = "7"
            };

            var courseUser = new UsersResultsViewModel
            {
                CourseId = "7",
                Course   = new CourseViewModel
                {
                    Id                   = "7",
                    Image                = new byte[0],
                    Title                = "Drun",
                    Description          = "Drunnnnnnnnnnnnnnnnnn",
                    MaxCountParticipants = 4,
                    StartDate            = DateTime.Now.AddDays(3),
                    DurationOfDays       = 3,
                    CreatorId            = "7",
                    Creator              = new GoUserViewModel {
                        Id = "7"
                    },
                    Status   = Status.Practically,
                    Category = Category.Climbing
                },
                ParticipantId = "8",
                Result        = StatusParticitant.Successfully
            };

            var ex = await Assert.ThrowsAsync <ArgumentException>(async() => await sut.AddResultToUsersCourses(courseUser, user));

            ex.Message.ShouldBe("This userCourse not exist!");
            coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify();
            coursesRepoBuilder.CoursesRepoMock.Verify();
            coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(d => d.SaveChangesAsync(), Times.Never);
        }
Example #2
0
        public async Task AddResultToUsersCourses_ShouldAddResultCorrect_IfCourseExist()
        {
            var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder();
            var courseUserRepo          = coursesUsersRepoBuilder
                                          .WithAll()
                                          .Build();

            var coursesRepoBuilder = new CoursesRepositoryBuilder();
            var courseRepo         = coursesRepoBuilder
                                     .WithAll()
                                     .Build();

            var sut = new CoursesService(courseUserRepo, courseRepo, null, Mapper);

            var user = new GoUser {
                Id = "7"
            };

            var courseUser = new UsersResultsViewModel
            {
                CourseId = "4",
                Course   = new CourseViewModel
                {
                    Id                   = "4",
                    Image                = new byte[0],
                    Title                = "Drun",
                    Description          = "Drunnnnnnnnnnnnnnnnnn",
                    MaxCountParticipants = 4,
                    StartDate            = DateTime.Now.AddDays(-3),
                    DurationOfDays       = 3,
                    CreatorId            = "7",
                    Creator              = new GoUserViewModel {
                        Id = "7"
                    },
                    Status   = Status.Practically,
                    Category = Category.Climbing
                },
                ParticipantId = "7",
                Result        = StatusParticitant.Successfully
            };

            await sut.AddResultToUsersCourses(courseUser, user);

            coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.AddAsync(It.IsAny <CoursesUsers>()), Times.Exactly(0));
            coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.SaveChangesAsync(), Times.Once);
        }