From 782e5ea4742bfb26c6100a419cdbe87a5acbb66f Mon Sep 17 00:00:00 2001 From: rekby <timofey.koolin@gmail.com> Date: Sun, 12 Jun 2022 11:31:18 +0300 Subject: [PATCH] add use cache example --- examples/simple/simple_test.go | 2 +- examples/simple/use_cache_params_test.go | 29 ++++++++++++++++++++++++ 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 examples/simple/use_cache_params_test.go diff --git a/examples/simple/simple_test.go b/examples/simple/simple_test.go index 4706d62..40296a3 100644 --- a/examples/simple/simple_test.go +++ b/examples/simple/simple_test.go @@ -12,7 +12,7 @@ import ( // counter fixture - increment globalCounter every non cached call // and return new globalCounter value func counter(e fixenv.Env) int { - return fixenv.Cache(e, "", nil, func() (res int, err error) { + return fixenv.Cache(e, nil, nil, func() (res int, err error) { globalCounter++ return globalCounter, nil }) diff --git a/examples/simple/use_cache_params_test.go b/examples/simple/use_cache_params_test.go new file mode 100644 index 0000000..0f9146f --- /dev/null +++ b/examples/simple/use_cache_params_test.go @@ -0,0 +1,29 @@ +//go:build go1.18 +// +build go1.18 + +package simple + +import ( + "math/rand" + "testing" + + "github.com/rekby/fixenv" + "github.com/stretchr/testify/require" +) + +// namedRandom return random number for new name args +// but return same value for all calls with same names +func namedRandom(e fixenv.Env, name string) int { + return fixenv.Cache(e, name, nil, func() (res int, err error) { + return rand.Int(), nil + }) +} + +func TestNamedRandom(t *testing.T) { + e := fixenv.NewEnv(t) + first := namedRandom(e, "first") + second := namedRandom(e, "second") + require.NotEqual(t, first, second) + require.Equal(t, first, namedRandom(e, "first")) + require.Equal(t, second, namedRandom(e, "second")) +}