github.com/Venafi/vcert/v5@v5.10.2/pkg/certificate/csrOrigin_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 CSROriginSuite struct { 12 suite.Suite 13 testYaml string 14 testCases []struct { 15 csrOrigin CSrOriginOption 16 strValue string 17 } 18 } 19 20 func (s *CSROriginSuite) SetupTest() { 21 s.testCases = []struct { 22 csrOrigin CSrOriginOption 23 strValue string 24 }{ 25 {csrOrigin: LocalGeneratedCSR, strValue: StrLocalGeneratedCSR}, 26 {csrOrigin: ServiceGeneratedCSR, strValue: StrServiceGeneratedCSR}, 27 {csrOrigin: UserProvidedCSR, strValue: StrUserProvidedCSR}, 28 {csrOrigin: UnknownCSR, strValue: strUnknownCSR}, 29 } 30 31 s.testYaml = `--- 32 cn: foobar 33 csrOrigin: %s 34 ` 35 } 36 37 func TestCSROrigin(t *testing.T) { 38 suite.Run(t, new(CSROriginSuite)) 39 } 40 41 func (s *CSROriginSuite) TestCSROrigin_MarshalYAML() { 42 for _, tc := range s.testCases { 43 s.Run(tc.strValue, func() { 44 data, err := tc.csrOrigin.MarshalYAML() 45 s.Nil(err) 46 s.Equal(tc.strValue, data.(string)) 47 }) 48 } 49 } 50 51 func (s *CSROriginSuite) TestCSROrigin_String() { 52 for _, tc := range s.testCases { 53 s.Run(tc.strValue, func() { 54 str := tc.csrOrigin.String() 55 s.Equal(tc.strValue, str) 56 }) 57 } 58 } 59 60 func (s *CSROriginSuite) TestCSROrigin_UnmarshalYAML() { 61 62 for _, tc := range s.testCases { 63 s.Run(tc.strValue, func() { 64 result := struct { 65 Cn string `yaml:"cn"` 66 CsrOrigin CSrOriginOption `yaml:"csrOrigin"` 67 }{} 68 parsedYaml := fmt.Sprintf(s.testYaml, tc.strValue) 69 err := yaml.Unmarshal([]byte(parsedYaml), &result) 70 71 s.Nil(err) 72 s.Equal(tc.csrOrigin, result.CsrOrigin) 73 }) 74 } 75 }