30 lines
1.1 KiB
Go
30 lines
1.1 KiB
Go
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)
|
|
}
|
|
}
|