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

     1  package eventbus
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  
     9  	eventbusv1alpha1 "github.com/argoproj/argo-events/pkg/apis/eventbus/v1alpha1"
    10  	"github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1"
    11  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    12  )
    13  
    14  const (
    15  	testSensorName      = "sensor-xxxxx"
    16  	testEventSourceName = "es-xxxxx"
    17  	testSubject         = "subj-xxxxx"
    18  	testHostname        = "sensor-xxxxx-xxxxx"
    19  )
    20  
    21  var (
    22  	testBadBusConfig = eventbusv1alpha1.BusConfig{}
    23  
    24  	testValidSensorSpec = &v1alpha1.Sensor{
    25  		TypeMeta:   metav1.TypeMeta{},
    26  		ObjectMeta: metav1.ObjectMeta{Name: testSensorName},
    27  		Spec:       v1alpha1.SensorSpec{},
    28  		Status:     v1alpha1.SensorStatus{},
    29  	}
    30  
    31  	testNoNameSensorSpec = &v1alpha1.Sensor{
    32  		TypeMeta:   metav1.TypeMeta{},
    33  		ObjectMeta: metav1.ObjectMeta{},
    34  		Spec:       v1alpha1.SensorSpec{},
    35  		Status:     v1alpha1.SensorStatus{},
    36  	}
    37  
    38  	testClusterID = "test"
    39  	testBusConfig = eventbusv1alpha1.BusConfig{
    40  		NATS: &eventbusv1alpha1.NATSConfig{
    41  			URL:       "nats://test:4222",
    42  			ClusterID: &testClusterID,
    43  			Auth:      &eventbusv1alpha1.AuthStrategyNone,
    44  		},
    45  	}
    46  )
    47  
    48  func TestGetSensorDriver(t *testing.T) {
    49  	t.Run("get driver without eventbus", func(t *testing.T) {
    50  		_, err := GetSensorDriver(context.Background(), testBadBusConfig, testValidSensorSpec, testHostname)
    51  		assert.Error(t, err)
    52  	})
    53  
    54  	t.Run("get driver with none auth eventbus", func(t *testing.T) {
    55  		driver, err := GetSensorDriver(context.Background(), testBusConfig, testValidSensorSpec, testHostname)
    56  		assert.NoError(t, err)
    57  		assert.NotNil(t, driver)
    58  	})
    59  
    60  	t.Run("get driver with invalid sensor spec", func(t *testing.T) {
    61  		_, err := GetSensorDriver(context.Background(), testBusConfig, testNoNameSensorSpec, testHostname)
    62  		assert.Error(t, err)
    63  	})
    64  
    65  	t.Run("get driver with nil sensor spec", func(t *testing.T) {
    66  		_, err := GetSensorDriver(context.Background(), testBusConfig, nil, testHostname)
    67  		assert.Error(t, err)
    68  	})
    69  }
    70  
    71  func TestGetSourceDriver(t *testing.T) {
    72  	t.Run("get driver without eventbus", func(t *testing.T) {
    73  		_, err := GetEventSourceDriver(context.Background(), testBadBusConfig, testEventSourceName, testSubject)
    74  		assert.Error(t, err)
    75  	})
    76  
    77  	t.Run("get driver with none auth eventbus", func(t *testing.T) {
    78  		driver, err := GetEventSourceDriver(context.Background(), testBusConfig, testEventSourceName, testSubject)
    79  		assert.NoError(t, err)
    80  		assert.NotNil(t, driver)
    81  	})
    82  
    83  	t.Run("get driver without eventSourceName", func(t *testing.T) {
    84  		_, err := GetEventSourceDriver(context.Background(), testBusConfig, "", testSubject)
    85  		assert.Error(t, err)
    86  	})
    87  
    88  	t.Run("get NATS Streaming driver without subject", func(t *testing.T) {
    89  		_, err := GetEventSourceDriver(context.Background(), testBusConfig, testEventSourceName, "")
    90  		assert.Error(t, err)
    91  	})
    92  }