package container import ( "testing" "github.com/nspcc-dev/neofs-api-go/v2/netmap" "github.com/nspcc-dev/neofs-api-go/v2/refs" "github.com/stretchr/testify/require" ) var ( cnr = &Container{ OwnerId: &refs.OwnerID{Value: []byte("Owner")}, Nonce: []byte("Salt"), BasicAcl: 505, Attributes: []*Container_Attribute{ { Key: "Hello", Value: "World", }, { Key: "Privet", Value: "Mir", }, }, Rules: &netmap.PlacementRule{ ReplFactor: 4, SfGroups: []*netmap.PlacementRule_SFGroup{ { Selectors: []*netmap.PlacementRule_SFGroup_Selector{ { Count: 1, Key: "Node", }, }, Filters: []*netmap.PlacementRule_SFGroup_Filter{ { Key: "City", }, { Key: "Datacenter", }, }, Exclude: []uint32{4, 5, 6}, }, }, }, } ) func TestContainer_StableMarshal(t *testing.T) { newCnr := new(Container) wire, err := cnr.StableMarshal(nil) require.NoError(t, err) err = newCnr.Unmarshal(wire) require.NoError(t, err) require.Equal(t, cnr, newCnr) } func TestPutRequest_Body_StableMarshal(t *testing.T) { expectedBody := new(PutRequest_Body) expectedBody.Container = cnr expectedBody.PublicKey = []byte{1, 2, 3, 4} expectedBody.Signature = []byte{5, 6, 7, 8} wire, err := expectedBody.StableMarshal(nil) require.NoError(t, err) gotBody := new(PutRequest_Body) err = gotBody.Unmarshal(wire) require.NoError(t, err) require.Equal(t, expectedBody, gotBody) }