feat: add protocol and reconciliation decisions

This commit is contained in:
2026-08-31 08:50:19 +00:00
parent fb41c5ff65
commit 5c4d98c01c
5 changed files with 296 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
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)
}
}