github.com/hamba/avro/v2@v2.22.1-0.20240518180522-aff3955acf7d/registry/decoder_internal_test.go (about) 1 package registry 2 3 import ( 4 "testing" 5 6 "github.com/hamba/avro/v2" 7 "github.com/stretchr/testify/assert" 8 "github.com/stretchr/testify/require" 9 ) 10 11 func TestDecoder_WithAPI(t *testing.T) { 12 client, err := NewClient("http://example.com") 13 require.NoError(t, err) 14 15 cfg := avro.Config{}.Freeze() 16 17 dec := NewDecoder(client, WithAPI(cfg)) 18 19 assert.Equal(t, cfg, dec.api) 20 } 21 22 func TestExtractSchemaID(t *testing.T) { 23 tests := []struct { 24 name string 25 data []byte 26 wantID int 27 wantErr require.ErrorAssertionFunc 28 }{ 29 { 30 name: "extracts id", 31 data: []byte{0x0, 0x0, 0x0, 0x0, 0x2a}, 32 wantID: 42, 33 wantErr: require.NoError, 34 }, 35 { 36 name: "handles short data", 37 data: []byte{0x0, 0x0, 0x0, 0x2a}, 38 wantID: 0, 39 wantErr: require.Error, 40 }, 41 { 42 name: "handles bad magic", 43 data: []byte{0x1, 0x0, 0x0, 0x0, 0x2a}, 44 wantID: 0, 45 wantErr: require.Error, 46 }, 47 } 48 49 for _, test := range tests { 50 test := test 51 t.Run(test.name, func(t *testing.T) { 52 got, err := extractSchemaID(test.data) 53 54 test.wantErr(t, err) 55 assert.Equal(t, test.wantID, got) 56 }) 57 } 58 }