github.com/Venafi/vcert/v5@v5.10.2/pkg/certificate/ellipticCurve_test.go (about)

     1  package certificate
     2  
     3  import (
     4  	"fmt"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/suite"
     8  	"gopkg.in/yaml.v3"
     9  )
    10  
    11  type EllipticCurveSuite struct {
    12  	suite.Suite
    13  	testYaml  string
    14  	testCases []struct {
    15  		keyCurve EllipticCurve
    16  		strValue string
    17  	}
    18  }
    19  
    20  func (s *EllipticCurveSuite) SetupTest() {
    21  	s.testCases = []struct {
    22  		keyCurve EllipticCurve
    23  		strValue string
    24  	}{
    25  		{keyCurve: EllipticCurveP256, strValue: strEccP256},
    26  		{keyCurve: EllipticCurveP384, strValue: strEccP384},
    27  		{keyCurve: EllipticCurveP521, strValue: strEccP521},
    28  		{keyCurve: EllipticCurveED25519, strValue: strEccED25519},
    29  	}
    30  
    31  	s.testYaml = `---
    32  cn: foobar
    33  keyCurve: %s
    34  `
    35  }
    36  
    37  func TestEllipticCurve(t *testing.T) {
    38  	suite.Run(t, new(EllipticCurveSuite))
    39  }
    40  
    41  func (s *EllipticCurveSuite) TestEllipticCurve_MarshalYAML() {
    42  	for _, tc := range s.testCases {
    43  		s.Run(tc.strValue, func() {
    44  			data, err := tc.keyCurve.MarshalYAML()
    45  			s.Nil(err)
    46  			s.Equal(tc.strValue, data.(string))
    47  		})
    48  	}
    49  }
    50  
    51  func (s *EllipticCurveSuite) TestEllipticCurve_String() {
    52  	for _, tc := range s.testCases {
    53  		s.Run(tc.strValue, func() {
    54  			str := tc.keyCurve.String()
    55  			s.Equal(tc.strValue, str)
    56  		})
    57  	}
    58  }
    59  
    60  func (s *EllipticCurveSuite) TestEllipticCurve_UnmarshalYAML() {
    61  	for _, tc := range s.testCases {
    62  		s.Run(tc.strValue, func() {
    63  			result := struct {
    64  				Cn       string        `yaml:"cn"`
    65  				KeyCurve EllipticCurve `yaml:"keyCurve"`
    66  			}{}
    67  			parsedYaml := fmt.Sprintf(s.testYaml, tc.strValue)
    68  			err := yaml.Unmarshal([]byte(parsedYaml), &result)
    69  
    70  			s.Nil(err)
    71  			s.Equal(tc.keyCurve, result.KeyCurve)
    72  		})
    73  	}
    74  }