mumrah commented on a change in pull request #9986:
URL: https://github.com/apache/kafka/pull/9986#discussion_r571122210



##########
File path: 
core/src/test/scala/unit/kafka/server/SaslApiVersionsRequestTest.scala
##########
@@ -16,83 +16,94 @@
   */
 package kafka.server
 
+import integration.kafka.server.IntegrationTestHelper
+
 import java.net.Socket
 import java.util.Collections
 import kafka.api.{KafkaSasl, SaslSetup}
 import kafka.utils.JaasTestUtils
 import org.apache.kafka.common.message.SaslHandshakeRequestData
 import org.apache.kafka.common.protocol.{ApiKeys, Errors}
 import org.apache.kafka.common.requests.{ApiVersionsRequest, 
ApiVersionsResponse, SaslHandshakeRequest, SaslHandshakeResponse}
-import org.apache.kafka.common.security.auth.SecurityProtocol
+import kafka.test.annotation.{ClusterTest, Type}
+import kafka.test.junit.ClusterTestExtensions
+import kafka.test.{ClusterConfig, ClusterInstance}
 import org.junit.jupiter.api.Assertions._
-import org.junit.jupiter.api.{AfterEach, BeforeEach, Test}
+import org.junit.jupiter.api.{AfterEach, BeforeEach}
+import org.junit.jupiter.api.extension.ExtendWith
 
-class SaslApiVersionsRequestTest extends AbstractApiVersionsRequestTest with 
SaslSetup {
-  override protected def securityProtocol = SecurityProtocol.SASL_PLAINTEXT
-  private val kafkaClientSaslMechanism = "PLAIN"
-  private val kafkaServerSaslMechanisms = List("PLAIN")
-  protected override val serverSaslProperties = 
Some(kafkaServerSaslProperties(kafkaServerSaslMechanisms, 
kafkaClientSaslMechanism))
-  protected override val clientSaslProperties = 
Some(kafkaClientSaslProperties(kafkaClientSaslMechanism))
-  override def brokerCount = 1
+import scala.jdk.CollectionConverters._
 
-  @BeforeEach
-  override def setUp(): Unit = {
-    startSasl(jaasSections(kafkaServerSaslMechanisms, 
Some(kafkaClientSaslMechanism), KafkaSasl, 
JaasTestUtils.KafkaServerContextName))
-    super.setUp()
-  }
 
-  @AfterEach
-  override def tearDown(): Unit = {
-    super.tearDown()
-    closeSasl()
+@ExtendWith(value = Array(classOf[ClusterTestExtensions]))
+class SaslApiVersionsRequestTest(helper: IntegrationTestHelper,
+                                 cluster: ClusterInstance) extends 
AbstractApiVersionsRequestTest(helper, cluster) {
+
+  val kafkaClientSaslMechanism = "PLAIN"
+  val kafkaServerSaslMechanisms = List("PLAIN")
+
+  private var sasl: SaslSetup = _
+
+  @BeforeEach
+  def setupSasl(config: ClusterConfig): Unit = {
+    sasl = new SaslSetup() {}
+    sasl.startSasl(sasl.jaasSections(kafkaServerSaslMechanisms, 
Some(kafkaClientSaslMechanism), KafkaSasl, 
JaasTestUtils.KafkaServerContextName))
+    
config.saslServerProperties().putAll(sasl.kafkaServerSaslProperties(kafkaServerSaslMechanisms,
 kafkaClientSaslMechanism))
+    
config.saslClientProperties().putAll(sasl.kafkaClientSaslProperties(kafkaClientSaslMechanism))
+    super.brokerPropertyOverrides(config.serverProperties())
   }
 
-  @Test
+  @ClusterTest(securityProtocol = "SASL_PLAINTEXT", clusterType = Type.Zk)
   def testApiVersionsRequestBeforeSaslHandshakeRequest(): Unit = {
-    val socket = connect()
+    val socket = helper.connect(cluster.brokers().asScala.head, 
cluster.listener())
     try {
-      val apiVersionsResponse = sendAndReceive[ApiVersionsResponse](
+      val apiVersionsResponse = helper.sendAndReceive[ApiVersionsResponse](
         new ApiVersionsRequest.Builder().build(0), socket)
-      validateApiVersionsResponse(apiVersionsResponse)
+      validateApiVersionsResponse(apiVersionsResponse, cluster.listener())
       sendSaslHandshakeRequestValidateResponse(socket)
     } finally {
       socket.close()
     }
   }
 
-  @Test
+  @ClusterTest(securityProtocol = "SASL_PLAINTEXT", clusterType = Type.Zk)

Review comment:
       We could do it in a method specified by `@ClusterTemplate`, or we could 
add `securityProtocol ` to the `@ClusterTestDefaults` class-level annotation. 
I'll leave this for a follow-up PR




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


Reply via email to