public void GetAllParticipants_ShouldThrow_IfUserIsNotCreator() { var coursesRepoBuilder = new CoursesRepositoryBuilder(); var courseRepo = coursesRepoBuilder .WithAll() .Build(); var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder(); var coursUserRepo = coursesUsersRepoBuilder .WithAll() .Build(); var sut = new CoursesService(coursUserRepo, courseRepo, null, Mapper); var user = new GoUser { Id = "9" }; var ex = Assert.Throws <ArgumentException>(() => sut.GetAllParticipants("1", user)); Assert.Equal("You can not add results!", ex.Message); coursesRepoBuilder.CoursesRepoMock.Verify(); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(); }
public async Task AddUserToCourse_ShouldNotAddNew_CourseUser_WhenMaxCountParticipantsIsFully() { var coursesRepoBuilder = new CoursesRepositoryBuilder(); var courseRepo = coursesRepoBuilder .WithAll() .Build(); var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder(); var courseUserRepo = coursesUsersRepoBuilder .WithAll() .Build(); var sut = new CoursesService(courseUserRepo, courseRepo, null, Mapper); var user = new GoUser { Id = "7" }; var user1 = new GoUser { Id = "8" }; await sut.AddUserToCourse("1", user); await sut.AddUserToCourse("1", user1); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.AddAsync(It.IsAny <CoursesUsers>()), Times.Exactly(1)); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.SaveChangesAsync(), Times.Exactly(1)); }
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); }
public void GetDetails_ShouldReturn_CourseDetailsViewModel() { var coursesRepoBuilder = new CoursesRepositoryBuilder(); var courseRepo = coursesRepoBuilder .WithAll() .Build(); var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder(); var coursUserRepo = coursesUsersRepoBuilder .WithAll() .Build(); var usersRepoBuilder = new GoUserRepositoryBuilder(); var userRepo = usersRepoBuilder .WithAll() .Build(); var sut = new CoursesService(coursUserRepo, courseRepo, userRepo, Mapper); var actual = sut.GetDetails(1, "2"); var expected = new CourseDetailsViewModel { Id = "2", Image = new byte[0], Title = "Brum", Description = "Brummmmmmmmmmmmm", MaxCountParticipants = 10, StartDate = DateTime.Now.AddDays(2), DurationOfDays = 5, Creator = new GoUserViewModel { Id = "9", FirstName = "Pelin", Image = new byte[0] }, FreeSeats = 9, Status = Status.Theoretical, Category = Category.Cycling }; Assert.Equal(expected, actual, new CourseDetailsViewModelComparer()); Assert.Equal(expected.Creator, actual.Creator, new GoUserViewModelComparer()); Assert.True(1 == actual.Participants.Count()); coursesRepoBuilder.CoursesRepoMock.Verify(); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(); usersRepoBuilder.UsersRepoMock.Verify(); }
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); }
public void GetMyCourses_ShouldReturn_CorrectListOf_CourseViewModels() { var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder(); var coursUserRepo = coursesUsersRepoBuilder .WithAll() .Build(); var coursesRepoBuilder = new CoursesRepositoryBuilder(); var courseRepo = coursesRepoBuilder .WithAll() .Build(); var sut = new CoursesService(coursUserRepo, courseRepo, null, Mapper); var actual = sut.GetMyCourses("8"); var expected = new List <CourseViewModel> { new CourseViewModel { Id = "1", Image = new byte[0], Title = "Drun", Description = "Drunnnnnnnnnnnnnnnnnn", MaxCountParticipants = 4, StartDate = DateTime.Now.AddDays(3), Creator = new GoUserViewModel { Id = "7", FirstName = "Slavqna" }, DurationOfDays = 3, Status = Status.Practically, Category = Category.Climbing } }.AsQueryable(); Assert.Equal(expected, actual, new CourseViewModelComparer()); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(); }
public async Task AddUserToCourse_ShouldNotAddNew_CourseUser_WhenStartDateIsBeforeToday() { var coursesRepoBuilder = new CoursesRepositoryBuilder(); var courseRepo = coursesRepoBuilder .WithAll() .Build(); var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder(); var courseUserRepo = coursesUsersRepoBuilder .WithAll() .Build(); var sut = new CoursesService(courseUserRepo, courseRepo, null, Mapper); var user = new GoUser { Id = "12" }; await sut.AddUserToCourse("4", user); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.AddAsync(It.IsAny <CoursesUsers>()), Times.Never); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.SaveChangesAsync(), Times.Never); }
public async Task AddUserToCourse_ShouldAddNew_CourseUser() { var coursesRepoBuilder = new CoursesRepositoryBuilder(); var courseRepo = coursesRepoBuilder .WithAll() .Build(); var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder(); var courseUserRepo = coursesUsersRepoBuilder .WithAll() .Build(); var sut = new CoursesService(courseUserRepo, courseRepo, null, Mapper); var user = new GoUser { Id = "7" }; await sut.AddUserToCourse("1", user); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.AddAsync(It.IsAny <CoursesUsers>()), Times.Once); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(r => r.SaveChangesAsync(), Times.Once); }
public void GetAllParticipants_ShouldReturn_All_UsersResultsViewModels() { var coursesRepoBuilder = new CoursesRepositoryBuilder(); var courseRepo = coursesRepoBuilder .WithAll() .Build(); var coursesUsersRepoBuilder = new CoursesUsersRepositoryBuilder(); var coursUserRepo = coursesUsersRepoBuilder .WithAll() .Build(); var usersRepoBuilder = new GoUserRepositoryBuilder(); var userRepo = usersRepoBuilder .WithAll() .Build(); var sut = new CoursesService(coursUserRepo, courseRepo, userRepo, Mapper); var user = new GoUser { Id = "7" }; var actual = sut.GetAllParticipants("1", user); var expected = new List <UsersResultsViewModel> { new UsersResultsViewModel { CourseId = "1", ParticipantId = "8", Participant = new GoUserViewModel { Id = "8", FirstName = "Niki", }, Result = StatusParticitant.Successfully }, new UsersResultsViewModel { CourseId = "1", ParticipantId = "9", Participant = new GoUserViewModel { Id = "9", FirstName = "Pelin" }, Result = StatusParticitant.Successfully }, new UsersResultsViewModel { CourseId = "1", ParticipantId = "11", Participant = new GoUserViewModel { Id = "11", FirstName = "Koni" }, Result = StatusParticitant.Unsuccessfully } }.AsQueryable(); var usersFromActual = actual.Select(x => x.Participant).ToList(); var usersFromExpected = expected.Select(x => x.Participant).ToList(); Assert.Equal(expected, actual, new UsersResultsViewModelComparer()); Assert.Equal(usersFromExpected, usersFromActual, new GoUserViewModelComparer()); coursesRepoBuilder.CoursesRepoMock.Verify(); coursesUsersRepoBuilder.CoursesUsersRepoMock.Verify(); usersRepoBuilder.UsersRepoMock.Verify(); }