public EnrollmentModel MapToEnrollmentModel(Enrollment enrollment) { return new EnrollmentModel() { Id = enrollment.Id, Date = string.Format("{0:dd.MM.yyyy}", enrollment.Date), GroupId = enrollment.GroupId, User = _userMapper.MapToUserModel(enrollment.User) }; }
public void RemoveProgressesForEnrollment_Removed() { //Arrange int _enrollmentId = 1; List<WordSuite> _collection = new List<WordSuite>() { new WordSuite(){Id = 1, PrototypeId = null}, new WordSuite() {OwnerId = 3, PrototypeId = 1, WordProgresses = new List<WordProgress>() { new WordProgress() } } }; Enrollment _enrollment = new Enrollment() { Date = System.DateTime.Now, Group = new Group() { Course = new Course() { WordSuites = _collection } }, GroupId = 0, Id = _enrollmentId, User = new User() { Id = 3 }, UserId = 0 }; Mock<IRepository<Enrollment>> _enrollmentRepository; _enrollmentRepository = new Mock<IRepository<Enrollment>>(); _uow.Setup(u => u.EnrollmentRepository).Returns(_enrollmentRepository.Object); _uow.Setup(u => u.WordProgressRepository).Returns(_progressRepository.Object); _uow.Setup(u => u.Save()); _enrollmentRepository.Setup(e => e.GetById(_enrollmentId)).Returns(_enrollment); _progressRepository.Setup(p => p.Delete(It.IsAny<IEnumerable<WordProgress>>())); var _service = new WordProgressService(_factory.Object); //Act _service.RemoveProgressesForEnrollment(_enrollmentId); //Assert _factory.Verify(f => f.GetUnitOfWork(), Times.Once); _uow.Verify(u => u.EnrollmentRepository, Times.Exactly(1)); _uow.Verify(u => u.WordProgressRepository, Times.Exactly(1)); _enrollmentRepository.Verify(e => e.GetById(_enrollmentId), Times.Exactly(1)); _progressRepository.Verify(p => p.Delete(It.IsAny<IEnumerable<WordProgress>>()), Times.Once); _uow.Verify(u => u.Save(), Times.Once); }
public void GetUsersNotBelongingToGroupTestPositive() { // Arrange // The group, not belonging to it users must be returned by test method var group = new Group { Id = 111, Course = new Course { Id = 222 }, OwnerId = 333, CourseId = 222 }; var role1 = new Role { Name = "Student" }; var role2 = new Role { Name = "AnotherRole" }; // On the exit must be this user with this enrollment // Enrollment to return var enrollment = new Enrollment { GroupId = 100, Group = new Group { Course = new Course { Id = 100 } } }; // User to return var user = new User { Id = 100, Roles = new List<Role> { role1 }, Enrollments = new List<Enrollment> { enrollment } }; enrollment.User = user; // User to test "u.Id != group.OwnerId" condition in Service var user1 = new User { Id = 333, Roles = new List<Role> { role1 }, Enrollments = new List<Enrollment> { enrollment } }; // User to test "u.Enrollments.Select(e => e.Group.Course).FirstOrDefault(c => c.Id == course.Id) == null" // condition in Service var enrollment2 = new Enrollment { GroupId = 100, Group = new Group { Course = new Course { Id = 222 } } }; var user2 = new User { Id = 333, Roles = new List<Role> { role1 }, Enrollments = new List<Enrollment> { enrollment2 } }; // User to test "!usersCurrentlyInGroup.Any(u2 => u2.Id == u.Id)" condition var user3 = new User { Id = 333, Roles = new List<Role> { role1 }, Enrollments = new List<Enrollment> { enrollment2 } }; // User to test "u.Roles.Select(r => r.Name).Contains("Student")" condition var user4 = new User { Id = 333, Roles = new List<Role> { role2 }, Enrollments = new List<Enrollment> { enrollment2 } }; // For enrollmentRepository to return var enrollments = new List<Enrollment>(new Enrollment[] { enrollment, new Enrollment { GroupId = 111, User = user1} }).AsQueryable(); var users = (new List<User> { user, user1, user2, user3, user4 }).AsQueryable(); var groupRepository = new Mock<IRepository<Group>>(); unitOfWork.Setup(x => x.GroupRepository).Returns(groupRepository.Object); groupRepository.Setup(x => x.GetById(group.Id)).Returns(group); enrollmentRepository.Setup(x => x.GetAll()).Returns(enrollments); var userRepository = new Mock<IUserRepository>(); unitOfWork.Setup(x => x.UserRepository).Returns(userRepository.Object); userRepository.Setup(x => x.GetAll()).Returns(users); // Act var result = enrollmentService.GetUsersNotBelongingToGroup(group.Id); // Assert Assert.IsTrue(result.TrueForAll(u => u.Roles.Select(r => r.Name).Contains("Student")), "User should have the Student role"); Assert.IsTrue(result.TrueForAll(u => !u.Enrollments.Any( e => e.GroupId == group.Id)), "User shouldn't be in that group"); Assert.IsTrue(result.TrueForAll(u => !u.Enrollments.Any(e => e.Group.CourseId == group.CourseId)), "User shouldn't be in the course that contains given group"); Assert.IsTrue(result.TrueForAll(u => u.Id != group.OwnerId)); }