瀏覽代碼

Add broker func for consumer metadata request

Evan Huus 11 年之前
父節點
當前提交
ac43305594
共有 2 個文件被更改,包括 24 次插入0 次删除
  1. 12 0
      broker.go
  2. 12 0
      broker_test.go

+ 12 - 0
broker.go

@@ -132,6 +132,18 @@ func (b *Broker) GetMetadata(clientID string, request *MetadataRequest) (*Metada
 	return response, nil
 }
 
+func (b *Broker) GetConsumerMetadata(clientID string, request *ConsumerMetadataRequest) (*ConsumerMetadataResponse, error) {
+	response := new(ConsumerMetadataResponse)
+
+	err := b.sendAndReceive(clientID, request, response)
+
+	if err != nil {
+		return nil, err
+	}
+
+	return response, nil
+}
+
 func (b *Broker) GetAvailableOffsets(clientID string, request *OffsetRequest) (*OffsetResponse, error) {
 	response := new(OffsetResponse)
 

+ 12 - 0
broker_test.go

@@ -90,6 +90,18 @@ var brokerTestTable = []struct {
 			}
 		}},
 
+	{[]byte{0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 't', 0x00, 0x00, 0x00, 0x00},
+		func(t *testing.T, broker *Broker) {
+			request := ConsumerMetadataRequest{}
+			response, err := broker.GetConsumerMetadata("clientID", &request)
+			if err != nil {
+				t.Error(err)
+			}
+			if response == nil {
+				t.Error("Consumer Metadata request got no response!")
+			}
+		}},
+
 	{[]byte{},
 		func(t *testing.T, broker *Broker) {
 			request := ProduceRequest{}