mirror of
https://github.com/akvorado/akvorado.git
synced 2025-12-12 06:24:10 +01:00
36 lines
858 B
Go
36 lines
858 B
Go
//go:build !release
|
|
|
|
package kafka
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/Shopify/sarama"
|
|
"github.com/Shopify/sarama/mocks"
|
|
|
|
"akvorado/daemon"
|
|
"akvorado/reporter"
|
|
)
|
|
|
|
// NewMock creates a new Kafka component with a mocked Kafka. It will
|
|
// panic if it cannot be started.
|
|
func NewMock(t *testing.T, reporter *reporter.Reporter, configuration Configuration) (*Component, *mocks.AsyncProducer) {
|
|
c, err := New(reporter, configuration, Dependencies{Daemon: daemon.NewMock(t)})
|
|
if err != nil {
|
|
t.Fatalf("New() error:\n%+v", err)
|
|
}
|
|
|
|
// Use a mocked Kafka producer
|
|
var mockProducer *mocks.AsyncProducer
|
|
c.createKafkaProducer = func() (sarama.AsyncProducer, error) {
|
|
mockProducer = mocks.NewAsyncProducer(t, c.kafkaConfig)
|
|
return mockProducer, nil
|
|
}
|
|
|
|
if err := c.Start(); err != nil {
|
|
t.Fatalf("Start() error:\n%+v", err)
|
|
}
|
|
|
|
return c, mockProducer
|
|
}
|