Maint: internal/openvpn/parse package
- Parse PEM key data for Cyberghost and VPNUnlimited - Add more unit tests
This commit is contained in:
51
internal/openvpn/parse/pem_test.go
Normal file
51
internal/openvpn/parse/pem_test.go
Normal file
@@ -0,0 +1,51 @@
|
||||
package parse
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func Test_extractPEM(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
testCases := map[string]struct {
|
||||
b []byte
|
||||
name string
|
||||
encodedData string
|
||||
err error
|
||||
}{
|
||||
"no input": {
|
||||
err: errors.New("cannot decode PEM encoded block"),
|
||||
},
|
||||
"bad input": {
|
||||
b: []byte{1, 2, 3},
|
||||
err: errors.New("cannot decode PEM encoded block"),
|
||||
},
|
||||
"valid data": {
|
||||
name: "certificate",
|
||||
b: []byte(validCertPEM),
|
||||
encodedData: validCertData,
|
||||
},
|
||||
}
|
||||
|
||||
for name, testCase := range testCases {
|
||||
testCase := testCase
|
||||
t.Run(name, func(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
encodedData, err := extractPEM(testCase.b, testCase.name)
|
||||
|
||||
if testCase.err != nil {
|
||||
require.Error(t, err)
|
||||
assert.Equal(t, testCase.err.Error(), err.Error())
|
||||
} else {
|
||||
assert.NoError(t, err)
|
||||
}
|
||||
|
||||
assert.Equal(t, testCase.encodedData, encodedData)
|
||||
})
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user