@@ -127,8 +127,88 @@ func TestInvalidTLSConfig(t *testing.T) {
127127 }
128128}
129129
130- func TestStringer (t * testing.T ) {
130+ func TestTLSVersionStringer (t * testing.T ) {
131131 if s := (TLSVersion )(tls .VersionTLS13 ); s .String () != "TLS13" {
132132 t .Fatalf ("tls.VersionTLS13 string should be TLS13, got %s" , s .String ())
133133 }
134134}
135+
136+ func TestTLSVersionMarshalYAML (t * testing.T ) {
137+ var tests = []struct {
138+ input TLSVersion
139+ expected string
140+ err error
141+ }{
142+ {
143+ input : TLSVersions ["TLS13" ],
144+ expected : "TLS13\n " ,
145+ err : nil ,
146+ },
147+ {
148+ input : TLSVersions ["TLS10" ],
149+ expected : "TLS10\n " ,
150+ err : nil ,
151+ },
152+ {
153+ input : TLSVersion (999 ),
154+ expected : "" ,
155+ err : fmt .Errorf ("unknown TLS version: 999" ),
156+ },
157+ }
158+
159+ for _ , test := range tests {
160+ t .Run (fmt .Sprintf ("MarshalYAML(%d)" , test .input ), func (t * testing.T ) {
161+ actualBytes , err := yaml .Marshal (& test .input )
162+ if err != nil {
163+ if test .err == nil || err .Error () != test .err .Error () {
164+ t .Fatalf ("error %v, expected %v" , err , test .err )
165+ }
166+ return
167+ }
168+ actual := string (actualBytes )
169+ if actual != test .expected {
170+ t .Fatalf ("returned %s, expected %s" , actual , test .expected )
171+ }
172+ })
173+ }
174+ }
175+
176+ func TestTLSVersionMarshalJSON (t * testing.T ) {
177+ var tests = []struct {
178+ input TLSVersion
179+ expected string
180+ err error
181+ }{
182+ {
183+ input : TLSVersions ["TLS13" ],
184+ expected : `"TLS13"` ,
185+ err : nil ,
186+ },
187+ {
188+ input : TLSVersions ["TLS10" ],
189+ expected : `"TLS10"` ,
190+ err : nil ,
191+ },
192+ {
193+ input : TLSVersion (999 ),
194+ expected : "" ,
195+ err : fmt .Errorf ("unknown TLS version: 999" ),
196+ },
197+ }
198+
199+ for _ , test := range tests {
200+ t .Run (fmt .Sprintf ("MarshalJSON(%d)" , test .input ), func (t * testing.T ) {
201+ actualBytes , err := json .Marshal (& test .input )
202+ if err != nil {
203+ if test .err == nil || ! strings .HasSuffix (err .Error (), test .err .Error ()) {
204+ t .Fatalf ("error %v, expected %v" , err , test .err )
205+ }
206+ return
207+ }
208+ actual := string (actualBytes )
209+ if actual != test .expected {
210+ t .Fatalf ("returned %s, expected %s" , actual , test .expected )
211+ }
212+ })
213+ }
214+ }
0 commit comments