function it_should_refresh_attributes_but_not_roles_if_specified($query, LdapUser $user, $qb)
 {
     $this->setRefreshRoles(false);
     $query->getSingleResult()->shouldBeCalled();
     $query->getResult()->shouldNotBeCalled();
     $user->getLdapGuid()->shouldBeCalled()->willReturn($this->attr['guid']);
     $qb->where(['guid' => $this->attr['guid']])->shouldBeCalled()->willReturn($qb);
     $user->getRoles()->shouldBeCalled()->willReturn(['ROLE_FOO']);
     $this->refreshUser($user)->toArray()->shouldEqual($this->attr);
 }
 /**
  * @param LdapUser $user
  * @return LdapObjectCollection
  */
 protected function getGroupsForUser(LdapUser $user)
 {
     $select = $this->roleAttrMap;
     unset($select['members']);
     $query = $this->ldap->buildLdapQuery()->from($this->groupObjectType)->select(array_values($select));
     if ($this->checkGroupsRecursively) {
         $query->where($query->filter()->hasMemberRecursively($user->getLdapGuid(), $this->roleAttrMap['members']));
     } else {
         $query->where([$this->roleAttrMap['members'] => $user->getLdapGuid()]);
     }
     return $query->getLdapQuery()->getResult();
 }