@Test
 public void testPersistNotExist() {
   Mockito.when(userRoleDAO.getUserRoleByUserIdAndRoleId(any(Long.class), any(Long.class)))
       .thenReturn(null);
   RoleDO role = new RoleDO();
   Long roleId = Long.valueOf(3);
   role.setRoleId(roleId);
   UserDO user = new UserDO();
   Mockito.when(roleDAO.getById(any(Long.class))).thenReturn(role);
   Mockito.when(userDAO.getById(any(Long.class))).thenReturn(user);
   Mockito.when(roleDAO.findDelegatableRoles(any(Long.class), any(Long.class)))
       .thenReturn(Lists.newArrayList(role));
   userRoleService.persist(new ServiceContext(), Long.valueOf(1), roleId);
   Mockito.verify(userRoleDAO, times(1)).persist(any(UserRoleDO.class));
 }
 @Test(expected = AuthorizationException.class)
 public void testPersistRoleNotConferrable() {
   Mockito.when(userRoleDAO.getUserRoleByUserIdAndRoleId(any(Long.class), any(Long.class)))
       .thenReturn(null);
   RoleDO role = new RoleDO();
   Long roleId = Long.valueOf(3);
   role.setRoleId(roleId);
   UserDO user = new UserDO();
   Mockito.when(roleDAO.getById(any(Long.class))).thenReturn(role);
   Mockito.when(userDAO.getById(any(Long.class))).thenReturn(user);
   Mockito.when(roleDAO.findDelegatableRoles(any(Long.class), any(Long.class)))
       .thenReturn(Lists.<RoleDO>newArrayList());
   try {
     userRoleService.persist(new ServiceContext(), Long.valueOf(1), roleId);
   } finally {
     Mockito.verify(userRoleDAO, Mockito.never()).persist(any(UserRoleDO.class));
   }
 }
  @Test(expected = AuthorizationException.class)
  public void testDeleteExistsNotDelegatable() {
    RoleDO notDelegatable = new RoleDO();
    Long roleId = Long.valueOf(2);
    notDelegatable.setRoleId(roleId);
    notDelegatable.setName("notDelgatable");
    Mockito.when(roleDAO.getById(Matchers.eq(roleId))).thenReturn(notDelegatable);

    Mockito.when(userRoleDAO.getUserRoleByUserIdAndRoleId(any(Long.class), any(Long.class)))
        .thenReturn(new UserRoleDO());
    Mockito.when(roleDAO.findDelegatableRoles(any(Long.class), any(Long.class)))
        .thenReturn(Lists.<RoleDO>newArrayList());
    try {
      userRoleService.delete(new ServiceContext(), Long.valueOf(1), roleId);
    } finally {
      Mockito.verify(userRoleDAO, Mockito.never()).delete(any(UserRoleDO.class));
    }
  }