package domain import ( "errors" "testing" rvboxv1 "github.com/rvbox/rvbox/gen/go/rvbox/v1" ) func TestSelectHighestCompatibleProtocol_HP_SES_01(t *testing.T) { t.Parallel() version, err := SelectProtocol(&rvboxv1.ProtocolRange{Major: 1, MinMinor: 1, MaxMinor: 5}, &rvboxv1.ProtocolRange{Major: 1, MinMinor: 3, MaxMinor: 7}) if err != nil || version.Major != 1 || version.Minor != 5 { t.Fatalf("SelectProtocol() = (%+v, %v)", version, err) } for _, ranges := range [][2]*rvboxv1.ProtocolRange{ {{Major: 1, MinMinor: 1, MaxMinor: 2}, {Major: 2, MinMinor: 1, MaxMinor: 2}}, {{Major: 1, MinMinor: 3, MaxMinor: 2}, {Major: 1, MinMinor: 1, MaxMinor: 2}}, {{Major: 1, MinMinor: 1, MaxMinor: 2}, {Major: 1, MinMinor: 3, MaxMinor: 4}}, } { if _, err := SelectProtocol(ranges[0], ranges[1]); !errors.Is(err, ErrNoCompatibleProtocol) { t.Errorf("SelectProtocol(%+v, %+v) error = %v", ranges[0], ranges[1], err) } } if _, err := SelectProtocol(nil, &rvboxv1.ProtocolRange{Major: 1}); !errors.Is(err, ErrNoCompatibleProtocol) { t.Fatalf("nil protocol range error = %v", err) } }