protected ApiVersionsResponse apiVersionsResponse() { return ApiVersionsResponse.defaultApiVersionsResponse(); }
public static ApiVersionsResponse apiVersionsResponse(int throttleTimeMs, byte maxMagic) { if (maxMagic == RecordBatch.CURRENT_MAGIC_VALUE && throttleTimeMs == DEFAULT_THROTTLE_TIME) { return defaultApiVersionsResponse(); } return createApiVersionsResponse(throttleTimeMs, maxMagic); }
@Test public void testUsableVersionLatestVersions() { List<ApiVersion> versionList = new LinkedList<>(); for (ApiVersion apiVersion: ApiVersionsResponse.defaultApiVersionsResponse().apiVersions()) { versionList.add(apiVersion); } // Add an API key that we don't know about. versionList.add(new ApiVersion((short) 100, (short) 0, (short) 1)); NodeApiVersions versions = new NodeApiVersions(versionList); for (ApiKeys apiKey: ApiKeys.values()) { assertEquals(apiKey.latestVersion(), versions.latestUsableVersion(apiKey)); } } }
@Test public void shouldCreateApiResponseThatHasAllApiKeysSupportedByBroker() { assertEquals(apiKeysInResponse(ApiVersionsResponse.defaultApiVersionsResponse()), Utils.mkSet(ApiKeys.values())); }
private void awaitReady(NetworkClient client, Node node) { if (client.discoverBrokerVersions()) { setExpectedApiVersionsResponse(ApiVersionsResponse.defaultApiVersionsResponse()); } while (!client.ready(node, time.milliseconds())) client.poll(1, time.milliseconds()); selector.clear(); }
@Test public void shouldHaveCorrectDefaultApiVersionsResponse() { Collection<ApiVersionsResponse.ApiVersion> apiVersions = ApiVersionsResponse.defaultApiVersionsResponse().apiVersions(); assertEquals("API versions for all API keys must be maintained.", apiVersions.size(), ApiKeys.values().length); for (ApiKeys key : ApiKeys.values()) { ApiVersionsResponse.ApiVersion version = ApiVersionsResponse.defaultApiVersionsResponse().apiVersion(key.id); assertNotNull("Could not find ApiVersion for API " + key.name, version); assertEquals("Incorrect min version for Api " + key.name, version.minVersion, key.oldestVersion()); assertEquals("Incorrect max version for Api " + key.name, version.maxVersion, key.latestVersion()); // Check if versions less than min version are indeed set as null, i.e., deprecated. for (int i = 0; i < version.minVersion; ++i) { assertNull("Request version " + i + " for API " + version.apiKey + " must be null", key.requestSchemas[i]); assertNull("Response version " + i + " for API " + version.apiKey + " must be null", key.responseSchemas[i]); } // Check if versions between min and max versions are non null, i.e., valid. for (int i = version.minVersion; i <= version.maxVersion; ++i) { assertNotNull("Request version " + i + " for API " + version.apiKey + " must not be null", key.requestSchemas[i]); assertNotNull("Response version " + i + " for API " + version.apiKey + " must not be null", key.responseSchemas[i]); } } }