Я пытаюсь написать модульный тест для моего перехватчика сервера аутентификации.Перехватчик извлекает информацию об идентификаторе пользователя из присоединенного заголовка метаданных и сохраняет ее как ContextKey, который впоследствии используется в вызовах службы.Я сделал это на основе инструкций из этого потока.
На основе HeaderServerInterceptorTest примера, я настроил свой собственный тест, который действительно вызывает перехватчик.Однако при попытке установить значение идентификатора пользователя оно всегда равно нулю.
Мой класс перехватчика:
@Override
public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call, Metadata headers,
ServerCallHandler<ReqT, RespT> next) {
// authentication and extracting user ID info
Context context = Context.current();
return Contexts.interceptCall(context.withValue(USER_ID, id), call, headers, next);
}
Не удается выполнить утверждение всегда, поскольку значение USER_ID равно нулю.
assertEquals("john_doe_ID", MyServerInterceptor.getUserID());
Я предполагаю, что мне не хватает какой-то дополнительной конфигурации для Context в моем тесте, но я не мог найти ничего подобного ...