39 lines
764 B
Go
39 lines
764 B
Go
|
package container
|
||
|
|
||
|
import (
|
||
|
"crypto/sha256"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/nspcc-dev/neofs-node/pkg/core/container/acl/basic"
|
||
|
"github.com/pkg/errors"
|
||
|
"github.com/stretchr/testify/require"
|
||
|
)
|
||
|
|
||
|
func TestCalculateID(t *testing.T) {
|
||
|
_, err := CalculateID(nil)
|
||
|
require.True(t, errors.Is(err, ErrNilContainer))
|
||
|
|
||
|
cnr := new(Container)
|
||
|
cnr.SetBasicACL(basic.FromUint32(1))
|
||
|
cnr.SetOwnerID(OwnerID{1, 2, 3})
|
||
|
cnr.SetSalt([]byte{4, 5, 6})
|
||
|
|
||
|
id1, err := CalculateID(cnr)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
data, err := cnr.MarshalBinary()
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
sh := sha256.Sum256(data)
|
||
|
|
||
|
require.Equal(t, id1.Bytes(), sh[:])
|
||
|
|
||
|
// change the container
|
||
|
cnr.SetSalt(append(cnr.Salt(), 1))
|
||
|
|
||
|
id2, err := CalculateID(cnr)
|
||
|
require.NoError(t, err)
|
||
|
|
||
|
require.NotEqual(t, id1, id2)
|
||
|
}
|