EasyMock глубокие заглушки

Я должен издеваться над следующим шагом безопасности с помощью EasyMock или UnitilsMock. Не могли бы вы предложить способ достижения этого?

String id = context.getCallerPrincipal().getName();

Этот шаг связан с безопасностью. Поэтому я не смогу создать объект Принципа и сделать двухуровневую насмешку. Я знаю, что mockito легко справляется с такими вещами следующим образом:

@Mock(answer = Answers.RETURNS_DEEP_STUBS)
SessionContext mockContext;

Но мне нужно подобное решение с использованием EasyMock или Unitils Mock. Полный код, который я хочу для модульного тестирования, приведен ниже,

@Override
@PermitAll
public List<Employee> findAll() {
   boolean isAdmin = context.isCallerInRole(Roles.ADMIN);
   if (isAdmin) {
      return super.findAll();
   } else {
      String id = context.getCallerPrincipal().getName();
      Query query = getEntityManager().createNamedQuery("findEmployeeById");
      query.setParameter("employeeId", id);
      return query.getResultList();
   }
}

-Спасибо

1 ответ

Решение

Если вы можете издеваться над Principalтогда вы можете заглушки context.getCallerPrincipal() чтобы вернуть этот макет, то заглушка mockedPrincipal.getName() вернуть все, что вам нужно.

Другие вопросы по тегам