[#168] netmap: Implement binary and JSON encoders/decoders on Filter
Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
parent
874a4b937f
commit
e721734599
14 changed files with 628 additions and 196 deletions
|
@ -7,46 +7,62 @@ import (
|
|||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestFilterJSON(t *testing.T) {
|
||||
f := generateFilter("key", "value", false)
|
||||
|
||||
d, err := f.MarshalJSON()
|
||||
require.NoError(t, err)
|
||||
|
||||
f2 := new(netmap.Filter)
|
||||
require.NoError(t, f2.UnmarshalJSON(d))
|
||||
|
||||
require.Equal(t, f, f2)
|
||||
}
|
||||
|
||||
func TestSelectorJSON(t *testing.T) {
|
||||
s := generateSelector("name")
|
||||
|
||||
data, err := s.MarshalJSON()
|
||||
require.NoError(t, err)
|
||||
|
||||
s2 := new(netmap.Selector)
|
||||
require.NoError(t, s2.UnmarshalJSON(data))
|
||||
|
||||
require.Equal(t, s, s2)
|
||||
}
|
||||
|
||||
func TestReplicaJSON(t *testing.T) {
|
||||
s := generateReplica("selector")
|
||||
|
||||
data, err := s.MarshalJSON()
|
||||
require.NoError(t, err)
|
||||
|
||||
s2 := new(netmap.Replica)
|
||||
require.NoError(t, s2.UnmarshalJSON(data))
|
||||
|
||||
require.Equal(t, s, s2)
|
||||
}
|
||||
|
||||
func TestAttributeJSON(t *testing.T) {
|
||||
a := generateAttribute("key", "value")
|
||||
|
||||
data, err := a.MarshalJSON()
|
||||
require.NoError(t, err)
|
||||
|
||||
a2 := new(netmap.Attribute)
|
||||
require.NoError(t, a2.UnmarshalJSON(data))
|
||||
|
||||
require.Equal(t, a, a2)
|
||||
}
|
||||
|
||||
func TestNodeInfoJSON(t *testing.T) {
|
||||
exp := generateNodeInfo("public key", "/multi/addr", 2)
|
||||
i := generateNodeInfo("key", "value", 3)
|
||||
|
||||
t.Run("non empty", func(t *testing.T) {
|
||||
data, err := netmap.NodeInfoToJSON(exp)
|
||||
require.NoError(t, err)
|
||||
data, err := i.MarshalJSON()
|
||||
require.NoError(t, err)
|
||||
|
||||
got, err := netmap.NodeInfoFromJSON(data)
|
||||
require.NoError(t, err)
|
||||
i2 := new(netmap.NodeInfo)
|
||||
require.NoError(t, i2.UnmarshalJSON(data))
|
||||
|
||||
require.Equal(t, exp, got)
|
||||
})
|
||||
|
||||
t.Run("empty", func(t *testing.T) {
|
||||
_, err := netmap.NodeInfoToJSON(nil)
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = netmap.NodeInfoFromJSON(nil)
|
||||
require.Error(t, err)
|
||||
})
|
||||
}
|
||||
|
||||
func TestPlacementPolicyJSON(t *testing.T) {
|
||||
exp := generatePolicy(3)
|
||||
|
||||
t.Run("non empty", func(t *testing.T) {
|
||||
data, err := netmap.PlacementPolicyToJSON(exp)
|
||||
require.NoError(t, err)
|
||||
|
||||
got, err := netmap.PlacementPolicyFromJSON(data)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, exp, got)
|
||||
})
|
||||
|
||||
t.Run("empty", func(t *testing.T) {
|
||||
_, err := netmap.PlacementPolicyToJSON(nil)
|
||||
require.Error(t, err)
|
||||
|
||||
_, err = netmap.PlacementPolicyFromJSON(nil)
|
||||
require.Error(t, err)
|
||||
})
|
||||
require.Equal(t, i, i2)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue