mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-24 16:11:08 +02:00
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
// Copyright (c) HashiCorp, Inc.
|
|
// SPDX-License-Identifier: BUSL-1.1
|
|
|
|
package parsing
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/google/certificate-transparency-go/asn1"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
// TestAsn1UnmarshallNoTrailing tests the Asn1UnmarshallNoTrailing function returns
|
|
// errors as we expect if the input is not marshalled correctly or there is trailing
|
|
// data.
|
|
func TestAsn1UnmarshallNoTrailing(t *testing.T) {
|
|
stringToMarshal := "a string"
|
|
marshal, err := asn1.Marshal(stringToMarshal)
|
|
require.NoError(t, err, "marshal failed")
|
|
|
|
var myTestString string
|
|
|
|
type args struct {
|
|
b []byte
|
|
val any
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantErr bool
|
|
}{
|
|
{"happy-path", args{marshal, &myTestString}, false},
|
|
{"bad-marshalling", args{[]byte("incorrect"), &myTestString}, true},
|
|
{"trailing-data", args{append(marshal, []byte("\n")...), &myTestString}, true},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
myTestString = ""
|
|
err := Asn1UnmarshallNoTrailing(tt.args.b, tt.args.val)
|
|
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("Asn1UnmarshallNoTrailing() error = %v, wantErr %v", err, tt.wantErr)
|
|
}
|
|
|
|
if !tt.wantErr {
|
|
if myTestString != stringToMarshal {
|
|
t.Errorf("Asn1UnmarshallNoTrailing() = %v, want %v", myTestString, stringToMarshal)
|
|
}
|
|
}
|
|
})
|
|
}
|
|
}
|