github.com/argoproj/argo-events@v1.9.1/sensors/triggers/azure-event-hubs/azure_event_hubs_test.go (about)

     1  /*
     2  Copyright 2020 BlackRock, Inc.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8  	http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    16  package azure_event_hubs
    17  
    18  import (
    19  	"context"
    20  	"testing"
    21  
    22  	"github.com/argoproj/argo-events/common/logging"
    23  	"github.com/argoproj/argo-events/pkg/apis/sensor/v1alpha1"
    24  	cloudevents "github.com/cloudevents/sdk-go/v2"
    25  	"github.com/stretchr/testify/assert"
    26  	corev1 "k8s.io/api/core/v1"
    27  	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    28  )
    29  
    30  var sensorObj = &v1alpha1.Sensor{
    31  	ObjectMeta: metav1.ObjectMeta{
    32  		Name:      "fake-sensor",
    33  		Namespace: "fake",
    34  	},
    35  	Spec: v1alpha1.SensorSpec{
    36  		Triggers: []v1alpha1.Trigger{
    37  			{
    38  				Template: &v1alpha1.TriggerTemplate{
    39  					Name: "fake-trigger",
    40  					AzureEventHubs: &v1alpha1.AzureEventHubsTrigger{
    41  						FQDN:       "fake-url",
    42  						HubName:    "fake-hub",
    43  						Parameters: nil,
    44  						SharedAccessKey: &corev1.SecretKeySelector{
    45  							LocalObjectReference: corev1.LocalObjectReference{
    46  								Name: "fake-secret",
    47  							},
    48  							Key: "sharedAccessKey",
    49  						},
    50  						SharedAccessKeyName: &corev1.SecretKeySelector{
    51  							LocalObjectReference: corev1.LocalObjectReference{
    52  								Name: "fake-secret",
    53  							},
    54  							Key: "sharedAccessKeyName",
    55  						},
    56  						Payload: nil,
    57  					},
    58  				},
    59  			},
    60  		},
    61  	},
    62  }
    63  
    64  func getFakeAzureEventHubsTrigger() *AzureEventHubsTrigger {
    65  	return &AzureEventHubsTrigger{
    66  		Hub:     nil,
    67  		Sensor:  sensorObj.DeepCopy(),
    68  		Trigger: &sensorObj.Spec.Triggers[0],
    69  		Logger:  logging.NewArgoEventsLogger(),
    70  	}
    71  }
    72  
    73  func TestAzureEventHubsTrigger_FetchResource(t *testing.T) {
    74  	trigger := getFakeAzureEventHubsTrigger()
    75  	resource, err := trigger.FetchResource(context.TODO())
    76  	assert.Nil(t, err)
    77  	assert.NotNil(t, resource)
    78  
    79  	at, ok := resource.(*v1alpha1.AzureEventHubsTrigger)
    80  	assert.Nil(t, err)
    81  	assert.Equal(t, true, ok)
    82  	assert.Equal(t, "fake-url", at.FQDN)
    83  	assert.Equal(t, "fake-hub", at.HubName)
    84  }
    85  
    86  func TestAzureEventHubsTrigger_ApplyResourceParameters(t *testing.T) {
    87  	trigger := getFakeAzureEventHubsTrigger()
    88  
    89  	testEvents := map[string]*v1alpha1.Event{
    90  		"fake-dependency": {
    91  			Context: &v1alpha1.EventContext{
    92  				ID:              "1",
    93  				Type:            "webhook",
    94  				Source:          "webhook-gateway",
    95  				DataContentType: "application/json",
    96  				SpecVersion:     cloudevents.VersionV1,
    97  				Subject:         "example-1",
    98  			},
    99  			Data: []byte(`{"fqdn": "real-fqdn"}`),
   100  		},
   101  	}
   102  
   103  	defaultValue := "fake-azure-event-hubs-fqdn"
   104  
   105  	trigger.Trigger.Template.AzureEventHubs.Parameters = []v1alpha1.TriggerParameter{
   106  		{
   107  			Src: &v1alpha1.TriggerParameterSource{
   108  				DependencyName: "fake-dependency",
   109  				DataKey:        "fqdn",
   110  				Value:          &defaultValue,
   111  			},
   112  			Dest: "fqdn",
   113  		},
   114  	}
   115  
   116  	response, err := trigger.ApplyResourceParameters(testEvents, trigger.Trigger.Template.AzureEventHubs)
   117  	assert.Nil(t, err)
   118  	assert.NotNil(t, response)
   119  
   120  	updatedTrigger, ok := response.(*v1alpha1.AzureEventHubsTrigger)
   121  	assert.Nil(t, err)
   122  	assert.Equal(t, true, ok)
   123  	assert.Equal(t, "real-fqdn", updatedTrigger.FQDN)
   124  }