2021-11-23 12:41:55 +00:00
|
|
|
package subnetid_test
|
|
|
|
|
|
|
|
import (
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/nspcc-dev/neofs-api-go/v2/refs"
|
|
|
|
subnetid "github.com/nspcc-dev/neofs-sdk-go/subnet/id"
|
|
|
|
subnetidtest "github.com/nspcc-dev/neofs-sdk-go/subnet/id/test"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
|
|
)
|
|
|
|
|
|
|
|
func TestIsZero(t *testing.T) {
|
|
|
|
var id subnetid.ID
|
|
|
|
|
|
|
|
require.True(t, subnetid.IsZero(id))
|
|
|
|
|
|
|
|
id.SetNumber(13)
|
|
|
|
require.False(t, subnetid.IsZero(id))
|
|
|
|
|
|
|
|
id.SetNumber(0)
|
|
|
|
require.True(t, subnetid.IsZero(id))
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestID_FromV2(t *testing.T) {
|
|
|
|
const num = 13
|
|
|
|
|
|
|
|
var id1 subnetid.ID
|
|
|
|
id1.SetNumber(num)
|
|
|
|
|
|
|
|
var idv2 refs.SubnetID
|
|
|
|
idv2.SetValue(num)
|
|
|
|
|
|
|
|
var id2 subnetid.ID
|
|
|
|
id2.FromV2(idv2)
|
|
|
|
|
|
|
|
require.True(t, id1.Equals(&id2))
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestID_WriteToV2(t *testing.T) {
|
|
|
|
const num = 13
|
|
|
|
|
|
|
|
var (
|
|
|
|
id subnetid.ID
|
|
|
|
idv2 refs.SubnetID
|
|
|
|
)
|
|
|
|
|
|
|
|
id.WriteToV2(&idv2)
|
|
|
|
require.Zero(t, idv2.GetValue())
|
|
|
|
|
|
|
|
id.SetNumber(num)
|
|
|
|
|
|
|
|
id.WriteToV2(&idv2)
|
|
|
|
require.EqualValues(t, num, idv2.GetValue())
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestID_Equals(t *testing.T) {
|
|
|
|
const num = 13
|
|
|
|
|
|
|
|
var id1, id2, idOther, id0 subnetid.ID
|
|
|
|
|
|
|
|
id0.Equals(nil)
|
|
|
|
|
|
|
|
id1.SetNumber(num)
|
|
|
|
id2.SetNumber(num)
|
|
|
|
idOther.SetNumber(num + 1)
|
|
|
|
|
|
|
|
require.True(t, id1.Equals(&id2))
|
|
|
|
require.False(t, id1.Equals(&idOther))
|
|
|
|
require.False(t, id2.Equals(&idOther))
|
|
|
|
}
|
|
|
|
|
|
|
|
func TestSubnetIDEncoding(t *testing.T) {
|
2021-11-12 11:19:16 +00:00
|
|
|
id := subnetidtest.ID()
|
2021-11-23 12:41:55 +00:00
|
|
|
|
|
|
|
t.Run("binary", func(t *testing.T) {
|
|
|
|
data, err := id.Marshal()
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
var id2 subnetid.ID
|
|
|
|
require.NoError(t, id2.Unmarshal(data))
|
|
|
|
|
|
|
|
require.True(t, id2.Equals(id))
|
|
|
|
})
|
|
|
|
|
|
|
|
t.Run("text", func(t *testing.T) {
|
|
|
|
data, err := id.MarshalText()
|
|
|
|
require.NoError(t, err)
|
|
|
|
|
|
|
|
var id2 subnetid.ID
|
|
|
|
require.NoError(t, id2.UnmarshalText(data))
|
|
|
|
|
|
|
|
require.True(t, id2.Equals(id))
|
|
|
|
})
|
|
|
|
}
|
2021-11-23 18:17:58 +00:00
|
|
|
|
|
|
|
func TestMakeZero(t *testing.T) {
|
|
|
|
var id subnetid.ID
|
|
|
|
|
|
|
|
id.SetNumber(13)
|
|
|
|
|
|
|
|
require.False(t, subnetid.IsZero(id))
|
|
|
|
|
|
|
|
subnetid.MakeZero(&id)
|
|
|
|
|
|
|
|
require.True(t, subnetid.IsZero(id))
|
|
|
|
}
|