github.com/argoproj/argo-events@v1.9.1/eventbus/kafka/base/kafka_test.go (about)

     1  package base
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/IBM/sarama"
     7  	eventbusv1alpha1 "github.com/argoproj/argo-events/pkg/apis/eventbus/v1alpha1"
     8  	"github.com/stretchr/testify/assert"
     9  	"go.uber.org/zap"
    10  )
    11  
    12  func TestBrokers(t *testing.T) {
    13  	config := &eventbusv1alpha1.KafkaBus{
    14  		URL: "broker1:9092,broker2:9092",
    15  	}
    16  
    17  	logger := zap.NewNop().Sugar()
    18  	kafka := NewKafka(config, logger)
    19  
    20  	expectedBrokers := []string{"broker1:9092", "broker2:9092"}
    21  	actualBrokers := kafka.Brokers()
    22  
    23  	assert.Equal(t, expectedBrokers, actualBrokers)
    24  }
    25  
    26  func TestConfig(t *testing.T) {
    27  	config := &eventbusv1alpha1.KafkaBus{
    28  		URL: "localhost:9092",
    29  	}
    30  
    31  	logger := zap.NewNop().Sugar()
    32  
    33  	kafka := NewKafka(config, logger)
    34  
    35  	saramaConfig, err := kafka.Config()
    36  
    37  	assert.NoError(t, err)
    38  	assert.NotNil(t, saramaConfig)
    39  	assert.Equal(t, sarama.OffsetNewest, saramaConfig.Consumer.Offsets.Initial)
    40  	assert.Equal(t, sarama.WaitForAll, saramaConfig.Producer.RequiredAcks)
    41  }
    42  
    43  func TestConfig_StartOldest(t *testing.T) {
    44  	config := &eventbusv1alpha1.KafkaBus{
    45  		URL: "localhost:9092",
    46  		ConsumerGroup: &eventbusv1alpha1.KafkaConsumerGroup{
    47  			StartOldest: true,
    48  		},
    49  	}
    50  
    51  	logger := zap.NewNop().Sugar()
    52  
    53  	kafka := NewKafka(config, logger)
    54  
    55  	saramaConfig, err := kafka.Config()
    56  
    57  	assert.NoError(t, err)
    58  	assert.NotNil(t, saramaConfig)
    59  	assert.Equal(t, sarama.OffsetOldest, saramaConfig.Consumer.Offsets.Initial)
    60  }
    61  
    62  func TestConfig_NoSASL(t *testing.T) {
    63  	config := &eventbusv1alpha1.KafkaBus{
    64  		URL:  "localhost:9092",
    65  		SASL: nil,
    66  	}
    67  
    68  	logger := zap.NewNop().Sugar()
    69  
    70  	kafka := NewKafka(config, logger)
    71  
    72  	saramaConfig, err := kafka.Config()
    73  
    74  	assert.NoError(t, err)
    75  	assert.NotNil(t, saramaConfig)
    76  	assert.False(t, saramaConfig.Net.SASL.Enable)
    77  }
    78  
    79  func TestNewKafka(t *testing.T) {
    80  	config := &eventbusv1alpha1.KafkaBus{
    81  		URL: "localhost:9092",
    82  	}
    83  
    84  	logger := zap.NewNop().Sugar()
    85  
    86  	kafka := NewKafka(config, logger)
    87  
    88  	assert.NotNil(t, kafka)
    89  	assert.NotNil(t, kafka.Logger)
    90  	assert.NotNil(t, kafka.config)
    91  }
    92  
    93  func TestNewKafka_EmptyURL(t *testing.T) {
    94  	config := &eventbusv1alpha1.KafkaBus{
    95  		URL: "",
    96  	}
    97  
    98  	logger := zap.NewNop().Sugar()
    99  
   100  	kafka := NewKafka(config, logger)
   101  
   102  	assert.NotNil(t, kafka)
   103  	assert.NotNil(t, kafka.Logger)
   104  	assert.NotNil(t, kafka.config)
   105  }