github.com/lestrrat-go/jwx/v2@v2.0.21/jwa/compression_gen_test.go (about) 1 // Code generated by tools/cmd/genjwa/main.go. DO NOT EDIT 2 3 package jwa_test 4 5 import ( 6 "testing" 7 8 "github.com/lestrrat-go/jwx/v2/jwa" 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestCompressionAlgorithm(t *testing.T) { 13 t.Parallel() 14 t.Run(`accept jwa constant Deflate`, func(t *testing.T) { 15 t.Parallel() 16 var dst jwa.CompressionAlgorithm 17 if !assert.NoError(t, dst.Accept(jwa.Deflate), `accept is successful`) { 18 return 19 } 20 if !assert.Equal(t, jwa.Deflate, dst, `accepted value should be equal to constant`) { 21 return 22 } 23 }) 24 t.Run(`accept the string DEF`, func(t *testing.T) { 25 t.Parallel() 26 var dst jwa.CompressionAlgorithm 27 if !assert.NoError(t, dst.Accept("DEF"), `accept is successful`) { 28 return 29 } 30 if !assert.Equal(t, jwa.Deflate, dst, `accepted value should be equal to constant`) { 31 return 32 } 33 }) 34 t.Run(`accept fmt.Stringer for DEF`, func(t *testing.T) { 35 t.Parallel() 36 var dst jwa.CompressionAlgorithm 37 if !assert.NoError(t, dst.Accept(stringer{src: "DEF"}), `accept is successful`) { 38 return 39 } 40 if !assert.Equal(t, jwa.Deflate, dst, `accepted value should be equal to constant`) { 41 return 42 } 43 }) 44 t.Run(`stringification for DEF`, func(t *testing.T) { 45 t.Parallel() 46 if !assert.Equal(t, "DEF", jwa.Deflate.String(), `stringified value matches`) { 47 return 48 } 49 }) 50 t.Run(`accept jwa constant NoCompress`, func(t *testing.T) { 51 t.Parallel() 52 var dst jwa.CompressionAlgorithm 53 if !assert.NoError(t, dst.Accept(jwa.NoCompress), `accept is successful`) { 54 return 55 } 56 if !assert.Equal(t, jwa.NoCompress, dst, `accepted value should be equal to constant`) { 57 return 58 } 59 }) 60 t.Run(`accept the string `, func(t *testing.T) { 61 t.Parallel() 62 var dst jwa.CompressionAlgorithm 63 if !assert.NoError(t, dst.Accept(""), `accept is successful`) { 64 return 65 } 66 if !assert.Equal(t, jwa.NoCompress, dst, `accepted value should be equal to constant`) { 67 return 68 } 69 }) 70 t.Run(`accept fmt.Stringer for `, func(t *testing.T) { 71 t.Parallel() 72 var dst jwa.CompressionAlgorithm 73 if !assert.NoError(t, dst.Accept(stringer{src: ""}), `accept is successful`) { 74 return 75 } 76 if !assert.Equal(t, jwa.NoCompress, dst, `accepted value should be equal to constant`) { 77 return 78 } 79 }) 80 t.Run(`stringification for `, func(t *testing.T) { 81 t.Parallel() 82 if !assert.Equal(t, "", jwa.NoCompress.String(), `stringified value matches`) { 83 return 84 } 85 }) 86 t.Run(`bail out on random integer value`, func(t *testing.T) { 87 t.Parallel() 88 var dst jwa.CompressionAlgorithm 89 if !assert.Error(t, dst.Accept(1), `accept should fail`) { 90 return 91 } 92 }) 93 t.Run(`do not accept invalid (totally made up) string value`, func(t *testing.T) { 94 t.Parallel() 95 var dst jwa.CompressionAlgorithm 96 if !assert.Error(t, dst.Accept(`totallyInvfalidValue`), `accept should fail`) { 97 return 98 } 99 }) 100 t.Run(`check list of elements`, func(t *testing.T) { 101 t.Parallel() 102 var expected = map[jwa.CompressionAlgorithm]struct{}{ 103 jwa.Deflate: {}, 104 jwa.NoCompress: {}, 105 } 106 for _, v := range jwa.CompressionAlgorithms() { 107 if _, ok := expected[v]; !assert.True(t, ok, `%s should be in the expected list`, v) { 108 return 109 } 110 delete(expected, v) 111 } 112 if !assert.Len(t, expected, 0) { 113 return 114 } 115 }) 116 }