mirror of https://github.com/hashicorp/consul
54 lines
1.5 KiB
Go
54 lines
1.5 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package types
|
|
|
|
import (
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestTLSVersion_Valid(t *testing.T) {
|
|
require.NoError(t, ValidateTLSVersion("TLS_AUTO"))
|
|
require.NoError(t, ValidateTLSVersion("TLSv1_0"))
|
|
require.NoError(t, ValidateTLSVersion("TLSv1_1"))
|
|
require.NoError(t, ValidateTLSVersion("TLSv1_2"))
|
|
require.NoError(t, ValidateTLSVersion("TLSv1_3"))
|
|
}
|
|
|
|
func TestTLSVersion_Invalid(t *testing.T) {
|
|
var zeroValue TLSVersion
|
|
require.NotEqual(t, TLSVersionInvalid, zeroValue)
|
|
require.NotEqual(t, TLSVersionInvalid, TLSVersionUnspecified)
|
|
require.NotEqual(t, TLSVersionInvalid, TLSVersionAuto)
|
|
}
|
|
|
|
func TestTLSVersion_Zero(t *testing.T) {
|
|
var zeroValue TLSVersion
|
|
require.Equal(t, TLSVersionUnspecified, zeroValue)
|
|
require.NotEqual(t, TLSVersionUnspecified, TLSVersionInvalid)
|
|
require.NotEqual(t, TLSVersionUnspecified, TLSVersionAuto)
|
|
}
|
|
|
|
func TestTLSVersion_ToJSON(t *testing.T) {
|
|
var tlsVersion TLSVersion
|
|
|
|
// Unmarshalling won't catch invalid version strings,
|
|
// must be checked in config or config entry validation
|
|
err := json.Unmarshal([]byte(`"foo"`), &tlsVersion)
|
|
require.NoError(t, err)
|
|
|
|
for version := range tlsVersions {
|
|
str := version.String()
|
|
versionJSON, err := json.Marshal(version)
|
|
require.NoError(t, err)
|
|
require.Equal(t, versionJSON, []byte(`"`+str+`"`))
|
|
|
|
err = json.Unmarshal([]byte(`"`+str+`"`), &tlsVersion)
|
|
require.NoError(t, err)
|
|
require.Equal(t, tlsVersion, version)
|
|
}
|
|
}
|