[#293] pkg/netmap: Implement generators of the messages

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
This commit is contained in:
Leonard Lyubich 2021-06-08 14:38:09 +03:00 committed by Alex Vanin
parent cb6e01a103
commit 3cf0ea022d

123
pkg/netmap/test/generate.go Normal file
View file

@ -0,0 +1,123 @@
package netmaptest
import (
"github.com/nspcc-dev/neofs-api-go/pkg/netmap"
)
func filter(withInner bool) *netmap.Filter {
x := netmap.NewFilter()
x.SetName("name")
x.SetKey("key")
x.SetValue("value")
x.SetOperation(netmap.OpAND)
if withInner {
x.SetInnerFilters(filter(false), filter(false))
}
return x
}
// Filter returns random netmap.Filter.
func Filter() *netmap.Filter {
return filter(true)
}
// Replica returns random netmap.Replica.
func Replica() *netmap.Replica {
x := netmap.NewReplica()
x.SetCount(666)
x.SetSelector("selector")
return x
}
// Selector returns random netmap.Selector.
func Selector() *netmap.Selector {
x := netmap.NewSelector()
x.SetCount(11)
x.SetName("name")
x.SetFilter("filter")
x.SetAttribute("attribute")
x.SetClause(netmap.ClauseDistinct)
return x
}
// PlacementPolicy returns random netmap.PlacementPolicy.
func PlacementPolicy() *netmap.PlacementPolicy {
x := netmap.NewPlacementPolicy()
x.SetContainerBackupFactor(9)
x.SetFilters(Filter(), Filter())
x.SetReplicas(Replica(), Replica())
x.SetSelectors(Selector(), Selector())
return x
}
// NetworkInfo returns random netmap.NetworkInfo.
func NetworkInfo() *netmap.NetworkInfo {
x := netmap.NewNetworkInfo()
x.SetCurrentEpoch(21)
x.SetMagicNumber(32)
return x
}
// NodeAttribute returns random netmap.NodeAttribute.
func NodeAttribute() *netmap.NodeAttribute {
x := netmap.NewNodeAttribute()
x.SetKey("key")
x.SetValue("value")
x.SetParentKeys("parent1", "parent2")
return x
}
// NodeInfo returns random netmap.NodeInfo.
func NodeInfo() *netmap.NodeInfo {
x := netmap.NewNodeInfo()
x.SetAddress("address")
x.SetPublicKey([]byte("public key"))
x.SetState(netmap.NodeStateOnline)
x.SetAttributes(NodeAttribute(), NodeAttribute())
return x
}
// Node returns random netmap.Node.
func Node() *netmap.Node {
return &netmap.Node{
ID: 1,
Index: 2,
Capacity: 3,
Price: 4,
AttrMap: map[string]string{
"key1": "value1",
"key2": "value2",
},
NodeInfo: NodeInfo(),
}
}
// Nodes returns random netmap.Nodes.
func Nodes() netmap.Nodes {
return netmap.Nodes{Node(), Node()}
}
// Netmap returns random netmap.Netmap.
func Netmap() *netmap.Netmap {
nm, err := netmap.NewNetmap(Nodes())
if err != nil {
panic(err)
}
return nm
}