47 lines
952 B
Go
47 lines
952 B
Go
package context
|
|
|
|
import (
|
|
"context"
|
|
"errors"
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/labstack/echo/v4"
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestIsCanceled(t *testing.T) {
|
|
ctx, cancel := context.WithCancel(context.Background())
|
|
assert.False(t, IsCanceledError(ctx.Err()))
|
|
cancel()
|
|
assert.True(t, IsCanceledError(ctx.Err()))
|
|
|
|
ctx, cancel = context.WithTimeout(context.Background(), time.Microsecond*5)
|
|
<-ctx.Done()
|
|
cancel()
|
|
assert.False(t, IsCanceledError(ctx.Err()))
|
|
|
|
assert.False(t, IsCanceledError(errors.New("test error")))
|
|
}
|
|
|
|
func TestCache(t *testing.T) {
|
|
ctx := echo.New().NewContext(nil, nil)
|
|
|
|
key := "testing"
|
|
value := "hello"
|
|
called := 0
|
|
callback := func(ctx echo.Context) string {
|
|
called++
|
|
return value
|
|
}
|
|
|
|
assert.Nil(t, ctx.Get(key))
|
|
|
|
got := Cache(ctx, key, callback)
|
|
assert.Equal(t, value, got)
|
|
assert.Equal(t, 1, called)
|
|
|
|
got = Cache(ctx, key, callback)
|
|
assert.Equal(t, value, got)
|
|
assert.Equal(t, 1, called)
|
|
}
|