58 lines
832 B
Go
58 lines
832 B
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package protocolversion
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestParseHeader(t *testing.T) {
|
|
cases := []struct {
|
|
Name string
|
|
Input string
|
|
Err string
|
|
Min, Current uint32
|
|
}{
|
|
{
|
|
"blank",
|
|
"",
|
|
"must be formatted",
|
|
0, 0,
|
|
},
|
|
|
|
{
|
|
"correct",
|
|
"1,2",
|
|
"",
|
|
1, 2,
|
|
},
|
|
|
|
{
|
|
"incomplete",
|
|
"1,",
|
|
"formatted",
|
|
0, 0,
|
|
},
|
|
}
|
|
|
|
for _, tt := range cases {
|
|
t.Run(tt.Name, func(t *testing.T) {
|
|
require := require.New(t)
|
|
|
|
min, current, err := ParseHeader(tt.Input)
|
|
if tt.Err != "" {
|
|
require.Error(err)
|
|
require.Contains(err.Error(), tt.Err)
|
|
return
|
|
}
|
|
|
|
require.NoError(err)
|
|
require.Equal(tt.Min, min)
|
|
require.Equal(tt.Current, current)
|
|
})
|
|
}
|
|
}
|