public void Should_return_true_when_group_has_read_permission_and_requested_is_read()
        {
            // Given
            var employeeGroupId = 1;
            var unitOfWork      = new Mock <IUnitOfWork>();
            var permissions     = new PermissionListBuilder().WithReadPermission().Build();
            var repo            = new Mock <IRepository <EmployeeGroup> >();

            repo.Setup(r => r.All).Returns((new[] {
                new EmployeeGroup {
                    Id = employeeGroupId, Permissions = permissions
                }
            }).AsQueryable());

            unitOfWork.Setup(u => u.EmployeeGroups).Returns(repo.Object);

            var queryHandler = new HasEmployeeGroupPermissionQueryHandler(unitOfWork.Object);

            // When
            var query         = new HasEmployeeGroupPermissionQuery(1, "vacancy_read");
            var hasPermission = queryHandler.Handle(query);

            // Then
            Assert.AreEqual(true, hasPermission);
        }
        public void Should_return_false_when_the_group_is_different_but_the_right_is_the_same()
        {
            // Given
            var employeeGroupId = 1;
            var unitOfWork      = new Mock <IUnitOfWork>();
            var permissions     = new PermissionListBuilder().WithReadPermission().Build();
            var repo            = new Mock <IRepository <EmployeeGroup> >();

            repo.Setup(r => r.All).Returns((new[] {
                new EmployeeGroup {
                    Id = employeeGroupId, Permissions = permissions
                }
            }).AsQueryable());

            unitOfWork.Setup(u => u.EmployeeGroups).Returns(repo.Object);

            var queryHandler = new HasEmployeeGroupPermissionQueryHandler(unitOfWork.Object);

            // When
            var query         = new HasEmployeeGroupPermissionQuery(1, "employee_read");
            var hasPermission = queryHandler.Handle(query);

            // Then
            Assert.AreEqual(false, hasPermission);
        }