From f38a24e8b581e74758041f369cb98b842ce00f8b Mon Sep 17 00:00:00 2001 From: Alex Vanin Date: Wed, 6 Apr 2022 11:03:41 +0300 Subject: [PATCH] [#193] pool: Add test to check side effects in token cache Signed-off-by: Alex Vanin --- pool/cache_test.go | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/pool/cache_test.go b/pool/cache_test.go index 7656f44..9f7c1e2 100644 --- a/pool/cache_test.go +++ b/pool/cache_test.go @@ -4,6 +4,9 @@ import ( "testing" "time" + "github.com/nspcc-dev/neo-go/pkg/crypto/keys" + "github.com/nspcc-dev/neofs-sdk-go/session" + sessiontest "github.com/nspcc-dev/neofs-sdk-go/session/test" "github.com/stretchr/testify/require" ) @@ -29,3 +32,32 @@ func TestSessionCache_GetAccessTime(t *testing.T) { require.True(t, ok) require.NotEqual(t, t1, t3) } + +func TestSessionCache_GetUnmodifiedToken(t *testing.T) { + const key = "Foo" + target := sessiontest.Token() + + pk, err := keys.NewPrivateKey() + require.NoError(t, err) + + check := func(t *testing.T, tok *session.Token, extra string) { + require.Empty(t, tok.Signature().Sign(), extra) + require.Nil(t, tok.Context(), extra) + } + + cache, err := newCache() + require.NoError(t, err) + + cache.Put(key, target) + value := cache.Get(key) + check(t, value, "before sign") + + err = value.Sign(&pk.PrivateKey) + require.NoError(t, err) + + octx := sessiontest.ObjectContext() + value.SetContext(octx) + + value = cache.Get(key) + check(t, value, "after sign") +}