Skip to content

Commit

Permalink
retry: add test
Browse files Browse the repository at this point in the history
  • Loading branch information
acoshift committed Jun 19, 2018
1 parent a252a9a commit 7a5b813
Showing 1 changed file with 78 additions and 0 deletions.
78 changes: 78 additions & 0 deletions store/retry/retry_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
package retry_test

import (
"fmt"
"testing"

"github.com/acoshift/session"
"github.com/acoshift/session/store/retry"
"github.com/stretchr/testify/assert"
)

type mockStore struct {
attempt int
}

func (s *mockStore) Get(key string, opt session.StoreOption) (session.Data, error) {
s.attempt++
if s.attempt == 3 {
return nil, nil
}
return nil, fmt.Errorf("error")
}

func (s *mockStore) Set(key string, value session.Data, opt session.StoreOption) error {
s.attempt++
if s.attempt == 3 {
return nil
}
return fmt.Errorf("error")
}

func (s *mockStore) Del(key string, opt session.StoreOption) error {
s.attempt++
if s.attempt == 3 {
return nil
}
return fmt.Errorf("error")
}

func TestRetrySuccess(t *testing.T) {
t.Run("Get", func(t *testing.T) {
s := retry.New(&mockStore{}, 0)
_, err := s.Get("", session.StoreOption{})
assert.NoError(t, err)
})

t.Run("Set", func(t *testing.T) {
s := retry.New(&mockStore{}, 0)
err := s.Set("", session.Data{}, session.StoreOption{})
assert.NoError(t, err)
})

t.Run("Del", func(t *testing.T) {
s := retry.New(&mockStore{}, 0)
err := s.Del("", session.StoreOption{})
assert.NoError(t, err)
})
}

func TestRetryFail(t *testing.T) {
t.Run("Get", func(t *testing.T) {
s := retry.New(&mockStore{}, 1)
_, err := s.Get("", session.StoreOption{})
assert.Error(t, err)
})

t.Run("Set", func(t *testing.T) {
s := retry.New(&mockStore{}, 1)
err := s.Set("", session.Data{}, session.StoreOption{})
assert.Error(t, err)
})

t.Run("Del", func(t *testing.T) {
s := retry.New(&mockStore{}, 1)
err := s.Del("", session.StoreOption{})
assert.Error(t, err)
})
}

0 comments on commit 7a5b813

Please sign in to comment.