public async Task GetByIdAsync()
        {
            // Arrange
            var groupId = new Guid(GroupId);

            var mockStudents = new Mock <IStudentService>();

            mockStudents.Setup(repo => repo.GetByIdAsync(Guid.Parse(StudentId)))
            .Returns(Task.FromResult(new Student
            {
                Name = "Test Student"
            }));

            var mockEmployees = new Mock <IEmployeeService>();

            mockEmployees.Setup(repo => repo.GetByIdAsync(Guid.Parse(TeacherId)))
            .Returns(Task.FromResult(new Employee
            {
                Name = "Test Employee"
            }));

            var mockRepo = new Mock <IGroupRepository>();

            mockRepo.Setup(repo => repo.GetByIdAsync(groupId)).Returns(Task.FromResult(GetGroups().First()));

            var mockUnitOfWork = new Mock <IUnitOfWork>();

            mockUnitOfWork.Setup(uow => uow.Groups).Returns(mockRepo.Object);

            var provider = new GroupProvider(mockUnitOfWork.Object, mockStudents.Object, mockEmployees.Object, CreateMapper());

            // Act
            var result = await provider.GetByIdAsync(groupId);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(groupId, result.Id);
            Assert.Equal("Test Group", result.Name);

            Assert.NotNull(result.Teacher);
            Assert.IsType <Employee>(result.Teacher);
            Assert.Equal("Test Employee", result.Teacher.Name);

            Assert.NotEmpty(result.Students);
            Assert.IsType <Student>(result.Students.First());
            Assert.Equal("Test Student", result.Students.First().Name);
        }