github.com/bluenviron/mediacommon@v1.9.3/pkg/formats/mpegts/buffered_reader_test.go (about)

     1  package mpegts
     2  
     3  import (
     4  	"bytes"
     5  	"testing"
     6  
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestBufferedReader(t *testing.T) {
    11  	var buf bytes.Buffer
    12  
    13  	buf.Write(bytes.Repeat([]byte{1}, 188))
    14  	buf.Write(bytes.Repeat([]byte{2}, 188))
    15  	buf.Write(bytes.Repeat([]byte{3}, 188))
    16  
    17  	r := NewBufferedReader(&buf)
    18  
    19  	byts := make([]byte, 188)
    20  	n, err := r.Read(byts)
    21  	require.NoError(t, err)
    22  	require.Equal(t, 188, n)
    23  	require.Equal(t, bytes.Repeat([]byte{1}, 188), byts[:n])
    24  
    25  	require.Equal(t, 0, len(buf.Bytes()))
    26  
    27  	byts = make([]byte, 188)
    28  	n, err = r.Read(byts)
    29  	require.NoError(t, err)
    30  	require.Equal(t, 188, n)
    31  	require.Equal(t, bytes.Repeat([]byte{2}, 188), byts[:n])
    32  }
    33  
    34  func TestBufferedReaderError(t *testing.T) {
    35  	var buf bytes.Buffer
    36  
    37  	buf.Write(bytes.Repeat([]byte{1}, 1000))
    38  
    39  	r := NewBufferedReader(&buf)
    40  	byts := make([]byte, 188)
    41  	_, err := r.Read(byts)
    42  	require.EqualError(t, err, "received packet with size 1000 not multiple of 188")
    43  }