Как проверить значение ключа контекста, установленное из перехватчика сервера - PullRequest
0 голосов
/ 27 марта 2019

Я пытаюсь написать модульный тест для моего перехватчика сервера аутентификации.Перехватчик извлекает информацию об идентификаторе пользователя из присоединенного заголовка метаданных и сохраняет ее как 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 в моем тесте, но я не мог найти ничего подобного ...

...