|
@@ -46,7 +46,7 @@ func TestSimpleConsumer(t *testing.T) {
|
|
|
for i := 0; i < 10; i++ {
|
|
for i := 0; i < 10; i++ {
|
|
|
event := <-consumer.Events()
|
|
event := <-consumer.Events()
|
|
|
if event.Err != nil {
|
|
if event.Err != nil {
|
|
|
- t.Error(err)
|
|
|
|
|
|
|
+ t.Error(event.Err)
|
|
|
}
|
|
}
|
|
|
if event.Offset != int64(i) {
|
|
if event.Offset != int64(i) {
|
|
|
t.Error("Incorrect message offset!")
|
|
t.Error("Incorrect message offset!")
|
|
@@ -124,6 +124,47 @@ func TestConsumerLatestOffset(t *testing.T) {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+func TestConsumerPrelude(t *testing.T) {
|
|
|
|
|
+ mb1 := NewMockBroker(t, 1)
|
|
|
|
|
+ mb2 := NewMockBroker(t, 2)
|
|
|
|
|
+
|
|
|
|
|
+ mdr := new(MetadataResponse)
|
|
|
|
|
+ mdr.AddBroker(mb2.Addr(), mb2.BrokerID())
|
|
|
|
|
+ mdr.AddTopicPartition("my_topic", 0, 2)
|
|
|
|
|
+ mb1.Returns(mdr)
|
|
|
|
|
+
|
|
|
|
|
+ fr := new(FetchResponse)
|
|
|
|
|
+ fr.AddMessage("my_topic", 0, nil, ByteEncoder([]byte{0x00, 0x0E}), int64(0))
|
|
|
|
|
+ fr.AddMessage("my_topic", 0, nil, ByteEncoder([]byte{0x00, 0x0E}), int64(1))
|
|
|
|
|
+ mb2.Returns(fr)
|
|
|
|
|
+
|
|
|
|
|
+ client, err := NewClient("client_id", []string{mb1.Addr()}, nil)
|
|
|
|
|
+
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatal(err)
|
|
|
|
|
+ }
|
|
|
|
|
+ defer client.Close()
|
|
|
|
|
+
|
|
|
|
|
+ config := NewConsumerConfig()
|
|
|
|
|
+ config.OffsetMethod = OffsetMethodManual
|
|
|
|
|
+ config.OffsetValue = 1
|
|
|
|
|
+ consumer, err := NewConsumer(client, "my_topic", 0, "my_consumer_group", config)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ t.Fatal(err)
|
|
|
|
|
+ }
|
|
|
|
|
+ defer consumer.Close()
|
|
|
|
|
+ defer mb1.Close()
|
|
|
|
|
+ defer mb2.Close()
|
|
|
|
|
+
|
|
|
|
|
+ event := <-consumer.Events()
|
|
|
|
|
+ if event.Err != nil {
|
|
|
|
|
+ t.Error(event.Err)
|
|
|
|
|
+ }
|
|
|
|
|
+ if event.Offset != 1 {
|
|
|
|
|
+ t.Error("Incorrect message offset!")
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
func ExampleConsumer() {
|
|
func ExampleConsumer() {
|
|
|
client, err := NewClient("my_client", []string{"localhost:9092"}, nil)
|
|
client, err := NewClient("my_client", []string{"localhost:9092"}, nil)
|
|
|
if err != nil {
|
|
if err != nil {
|