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  }