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  }