package portmapperapi import ( "net" "testing" "github.com/moby/moby/v2/daemon/libnetwork/types" "gotest.tools/v3/assert" ) func TestPortBindingReqsCompare(t *testing.T) { pb := PortBindingReq{ PortBinding: types.PortBinding{ Proto: types.TCP, IP: net.ParseIP("172.17.0.2"), Port: 80, HostIP: net.ParseIP("192.168.1.2"), HostPort: 8080, HostPortEnd: 8080, }, } var pbA, pbB PortBindingReq assert.Check(t, pb.Compare(pb) == 0) //nolint:gocritic // ignore "dupArg: suspicious method call with the same argument and receiver (gocritic)" pbA, pbB = pb, pb pbB.Mapper = "routed" assert.Check(t, pbA.Compare(pbB) < 0) assert.Check(t, pbB.Compare(pbA) > 0) pbA, pbB = pb, pb pbA.Port = 22 assert.Check(t, pbA.Compare(pbB) < 0) assert.Check(t, pbB.Compare(pbA) > 0) pbA, pbB = pb, pb pbB.Proto = types.UDP assert.Check(t, pbA.Compare(pbB) < 0) assert.Check(t, pbB.Compare(pbA) > 0) pbA, pbB = pb, pb pbA.Port = 22 pbA.Proto = types.UDP assert.Check(t, pbA.Compare(pbB) < 0) assert.Check(t, pbB.Compare(pbA) > 0) pbA, pbB = pb, pb pbB.HostPort = 8081 assert.Check(t, pbA.Compare(pbB) < 0) assert.Check(t, pbB.Compare(pbA) > 0) pbA, pbB = pb, pb pbB.HostPort, pbB.HostPortEnd = 0, 0 assert.Check(t, pbA.Compare(pbB) < 0) assert.Check(t, pbB.Compare(pbA) > 0) pbA, pbB = pb, pb pbB.HostPortEnd = 8081 assert.Check(t, pbA.Compare(pbB) < 0) assert.Check(t, pbB.Compare(pbA) > 0) pbA, pbB = pb, pb pbA.HostPortEnd = 8080 pbB.HostPortEnd = 8081 assert.Check(t, pbA.Compare(pbB) < 0) assert.Check(t, pbB.Compare(pbA) > 0) }