github.com/argoproj/argo-events@v1.9.1/eventsources/persist/event_persist_test.go (about)

     1  package persist
     2  
     3  import (
     4  	"context"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/assert"
     8  	apierr "k8s.io/apimachinery/pkg/api/errors"
     9  	v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
    10  	"k8s.io/client-go/kubernetes/fake"
    11  
    12  	"github.com/argoproj/argo-events/pkg/apis/eventsource/v1alpha1"
    13  )
    14  
    15  func TestConfigMapPersist(t *testing.T) {
    16  	kubeClient := fake.NewSimpleClientset()
    17  	conf := &v1alpha1.ConfigMapPersistence{
    18  		Name:             "test-config",
    19  		CreateIfNotExist: true,
    20  	}
    21  	ctx := context.TODO()
    22  	cp, err := NewConfigMapPersist(ctx, kubeClient, conf, "default")
    23  	assert.NoError(t, err)
    24  	assert.True(t, cp.IsEnabled())
    25  	cm, err := kubeClient.CoreV1().ConfigMaps("default").Get(ctx, "test-config", v1.GetOptions{})
    26  	assert.NoError(t, err)
    27  	assert.NotNil(t, cm)
    28  	assert.Nil(t, cm.Data)
    29  
    30  	t.Run("SaveAndGetEvent", func(t *testing.T) {
    31  		event := Event{
    32  			EventKey:     "test.test",
    33  			EventPayload: "{test}",
    34  		}
    35  		err = cp.Save(&event)
    36  		assert.NoError(t, err)
    37  
    38  		event1, err := cp.Get("test.test")
    39  		assert.NoError(t, err)
    40  		assert.NotNil(t, event1)
    41  		assert.Equal(t, "test.test", event1.EventKey)
    42  
    43  		event1, err = cp.Get("test.test1")
    44  		assert.NoError(t, err)
    45  		assert.Nil(t, event1)
    46  	})
    47  
    48  	t.Run("GetWithDeletedMap", func(t *testing.T) {
    49  		err = kubeClient.CoreV1().ConfigMaps("default").Delete(ctx, "test-config", v1.DeleteOptions{})
    50  		assert.NoError(t, err)
    51  		event1, err := cp.Get("test.test")
    52  		assert.NoError(t, err)
    53  		assert.Nil(t, event1)
    54  	})
    55  
    56  	t.Run("SaveAndGetEventWithDeletedMap", func(t *testing.T) {
    57  		err = kubeClient.CoreV1().ConfigMaps("default").Delete(ctx, "test-config", v1.DeleteOptions{})
    58  		assert.True(t, apierr.IsNotFound(err))
    59  		event := Event{
    60  			EventKey:     "test.test",
    61  			EventPayload: "{test}",
    62  		}
    63  		err = cp.Save(&event)
    64  		assert.NoError(t, err)
    65  
    66  		event1, err := cp.Get("test.test")
    67  		assert.NoError(t, err)
    68  		assert.NotNil(t, event1)
    69  		assert.Equal(t, "test.test", event1.EventKey)
    70  
    71  		event1, err = cp.Get("test.test1")
    72  		assert.NoError(t, err)
    73  		assert.Nil(t, event1)
    74  	})
    75  }