From 7f5df682eb76da2ed6b4e9bbbb569be8d171a022 Mon Sep 17 00:00:00 2001 From: Thejas Nanjunda Date: Sun, 9 Aug 2020 18:23:41 +0530 Subject: [PATCH] adding more test coverage --- store/freecache_test.go | 77 ++++++++++++++++++++++++++++++++++++++++- 1 file changed, 76 insertions(+), 1 deletion(-) diff --git a/store/freecache_test.go b/store/freecache_test.go index 2c1f4a9..68e5427 100644 --- a/store/freecache_test.go +++ b/store/freecache_test.go @@ -30,6 +30,22 @@ func TestNewFreecache(t *testing.T) { assert.Equal(t, options, store.options) } +func TestNewFreecacheDefaultOptions(t *testing.T) { + // Given + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + client := mocksStore.NewMockFreecacheClientInterface(ctrl) + + // When + store := NewFreecache(client, nil) + + // Then + assert.IsType(t, new(FreecacheStore), store) + assert.Equal(t, client, store.client) + assert.Equal(t, &Options{}, store.options) +} + func TestFreecacheGet(t *testing.T) { // Given ctrl := gomock.NewController(t) @@ -65,6 +81,20 @@ func TestFreecacheGetNotFound(t *testing.T) { assert.Nil(t, value) } +func TestFreecacheGetInvalidKey(t *testing.T) { + // Given + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + client := mocksStore.NewMockFreecacheClientInterface(ctrl) + + s := NewFreecache(client, nil) + + _, err := s.Get([]byte("key1")) + assert.Error(t, err, "key type not supported by Freecache store") + +} + func TestFreecacheSet(t *testing.T) { // Given ctrl := gomock.NewController(t) @@ -77,13 +107,29 @@ func TestFreecacheSet(t *testing.T) { } client := mocksStore.NewMockFreecacheClientInterface(ctrl) - client.EXPECT().Set([]byte(cacheKey), cacheValue, 6).Return(nil) + client.EXPECT().Set([]byte(cacheKey), cacheValue, 0).Return(nil) s := NewFreecache(client, options) err := s.Set(cacheKey, cacheValue, options) assert.Nil(t, err) } +func TestFreecacheSetWithDefaultOptions(t *testing.T) { + // Given + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + cacheKey := "my-key" + cacheValue := []byte("my-cache-value") + + client := mocksStore.NewMockFreecacheClientInterface(ctrl) + client.EXPECT().Set([]byte(cacheKey), cacheValue, 0).Return(nil) + + s := NewFreecache(client, nil) + err := s.Set(cacheKey, cacheValue, nil) + assert.Nil(t, err) +} + func TestFreecacheSetInvalidValue(t *testing.T) { // Given ctrl := gomock.NewController(t) @@ -339,6 +385,35 @@ func TestFreecacheFailedInvalidateMultipleKeys(t *testing.T) { assert.EqualError(t, err, "failed to delete key my-key") } +func TestFreecacheFailedInvalidatePattern(t *testing.T) { + // Given + ctrl := gomock.NewController(t) + defer ctrl.Finish() + + options := InvalidateOptions{ + Tags: []string{"tag1"}, + } + + cacheKeys := []byte("my-key,key1,key2") + + client := mocksStore.NewMockFreecacheClientInterface(ctrl) + client.EXPECT().Get([]byte("freecache_tag_tag1")).Return(cacheKeys, nil) + client.EXPECT().Del([]byte("my-key")).Return(true) + client.EXPECT().Del([]byte("key1")).Return(true) + client.EXPECT().Del([]byte("key2")).Return(true) + client.EXPECT().Del([]byte("freecache_tag_tag1")).Return(false) + + s := NewFreecache(client, &Options{ + Expiration: 6 * time.Second, + }) + + // When + err := s.Invalidate(options) + + // Then + assert.EqualError(t, err, "failed to delete key freecache_tag_tag1") +} + func TestFreecacheClearAll(t *testing.T) { // Given ctrl := gomock.NewController(t)