github.com/hack0072008/kafka-go@v1.0.1/electleaders_test.go (about)

     1  package kafka
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	ktesting "github.com/hack0072008/kafka-go/testing"
     8  )
     9  
    10  func TestClientElectLeaders(t *testing.T) {
    11  	if !ktesting.KafkaIsAtLeast("2.4.0") {
    12  		return
    13  	}
    14  
    15  	ctx := context.Background()
    16  	client, shutdown := newLocalClient()
    17  	defer shutdown()
    18  
    19  	topic := makeTopic()
    20  	createTopic(t, topic, 2)
    21  	defer deleteTopic(t, topic)
    22  
    23  	// Local kafka only has 1 broker, so leader elections are no-ops.
    24  	resp, err := client.ElectLeaders(
    25  		ctx,
    26  		&ElectLeadersRequest{
    27  			Topic:      topic,
    28  			Partitions: []int{0, 1},
    29  		},
    30  	)
    31  
    32  	if err != nil {
    33  		t.Fatal(err)
    34  	}
    35  	if resp.Error != nil {
    36  		t.Error(
    37  			"Unexpected error in response",
    38  			"expected", nil,
    39  			"got", resp.Error,
    40  		)
    41  	}
    42  	if len(resp.PartitionResults) != 2 {
    43  		t.Error(
    44  			"Unexpected length of partition results",
    45  			"expected", 2,
    46  			"got", len(resp.PartitionResults),
    47  		)
    48  	}
    49  }