You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ij...@apache.org on 2016/04/28 05:58:51 UTC
kafka git commit: KAFKA-3621; Add tests for ApiVersionRequest/Response
Repository: kafka
Updated Branches:
refs/heads/trunk 669be7fad -> 57831a56a
KAFKA-3621; Add tests for ApiVersionRequest/Response
Author: Ashish Singh <as...@cloudera.com>
Reviewers: Ismael Juma <is...@juma.me.uk>
Closes #1275 from SinghAsDev/KAFKA-3621
Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/57831a56
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/57831a56
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/57831a56
Branch: refs/heads/trunk
Commit: 57831a56a581128e164b4372c5e5eb4b55038d4a
Parents: 669be7f
Author: Ashish Singh <as...@cloudera.com>
Authored: Wed Apr 27 17:31:31 2016 -0700
Committer: Ismael Juma <is...@juma.me.uk>
Committed: Wed Apr 27 17:31:31 2016 -0700
----------------------------------------------------------------------
.../kafka/server/ApiVersionsRequestTest.scala | 50 ++++++++++++++++++++
.../unit/kafka/server/BaseRequestTest.scala | 8 ++--
2 files changed, 55 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/kafka/blob/57831a56/core/src/test/scala/unit/kafka/server/ApiVersionsRequestTest.scala
----------------------------------------------------------------------
diff --git a/core/src/test/scala/unit/kafka/server/ApiVersionsRequestTest.scala b/core/src/test/scala/unit/kafka/server/ApiVersionsRequestTest.scala
new file mode 100644
index 0000000..ed59930
--- /dev/null
+++ b/core/src/test/scala/unit/kafka/server/ApiVersionsRequestTest.scala
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package kafka.server
+
+import org.apache.kafka.common.protocol.ApiKeys
+import org.apache.kafka.common.requests.ApiVersionsResponse.ApiVersion
+import org.apache.kafka.common.requests.{ApiVersionsRequest, ApiVersionsResponse}
+import org.junit.Assert._
+import org.junit.Test
+
+import scala.collection.JavaConversions._
+
+class ApiVersionsRequestTest extends BaseRequestTest {
+
+ override def numBrokers: Int = 1
+
+ @Test
+ def testApiVersionsRequest() {
+ val apiVersionsResponse = sendApiVersionsRequest(new ApiVersionsRequest, 0)
+
+ assertEquals("API keys in ApiVersionsResponse must match API keys supported by broker.", ApiKeys.values.length, apiVersionsResponse.apiVersions.size)
+ for (expectedApiVersion: ApiVersion <- KafkaApis.apiVersionsResponse.apiVersions) {
+ val actualApiVersion = apiVersionsResponse.apiVersion(expectedApiVersion.apiKey)
+ assertNotNull(s"API key ${actualApiVersion.apiKey} is supported by broker, but not received in ApiVersionsResponse.", actualApiVersion)
+ assertEquals("API key must be supported by the broker.", expectedApiVersion.apiKey, actualApiVersion.apiKey)
+ assertEquals(s"Received unexpected min version for API key ${actualApiVersion.apiKey}.", expectedApiVersion.minVersion, actualApiVersion.minVersion)
+ assertEquals(s"Received unexpected max version for API key ${actualApiVersion.apiKey}.", expectedApiVersion.maxVersion, actualApiVersion.maxVersion)
+ }
+ }
+
+ private def sendApiVersionsRequest(request: ApiVersionsRequest, version: Short): ApiVersionsResponse = {
+ val response = send(request, ApiKeys.API_VERSIONS, version)
+ ApiVersionsResponse.parse(response)
+ }
+}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/kafka/blob/57831a56/core/src/test/scala/unit/kafka/server/BaseRequestTest.scala
----------------------------------------------------------------------
diff --git a/core/src/test/scala/unit/kafka/server/BaseRequestTest.scala b/core/src/test/scala/unit/kafka/server/BaseRequestTest.scala
index 3d05c1d..d92ccea 100644
--- a/core/src/test/scala/unit/kafka/server/BaseRequestTest.scala
+++ b/core/src/test/scala/unit/kafka/server/BaseRequestTest.scala
@@ -30,11 +30,13 @@ import org.apache.kafka.common.requests.{AbstractRequest, RequestHeader, Respons
import org.junit.Before
abstract class BaseRequestTest extends KafkaServerTestHarness {
- val numBrokers = 3
private var correlationId = 0
- // Override properties by mutating the passed Properties object
- def propertyOverrides(properties: Properties): Unit
+ // If required, set number of brokers
+ protected def numBrokers: Int = 3
+
+ // If required, override properties by mutating the passed Properties object
+ protected def propertyOverrides(properties: Properties) {}
def generateConfigs() = {
val props = TestUtils.createBrokerConfigs(numBrokers, zkConnect, enableControlledShutdown = false)