62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
package streams
|
|
|
|
import (
|
|
"bytes"
|
|
"testing"
|
|
|
|
. "github.com/smartystreets/goconvey/convey"
|
|
)
|
|
|
|
func Test_MetadataInjector(t *testing.T) {
|
|
reader := bytes.NewReader(make([]byte, 1024))
|
|
buffer := make([]byte, 128)
|
|
|
|
Convey("MetadataInjector", t, func() {
|
|
mi := NewMetadataInjector(reader, 192)
|
|
|
|
// 128
|
|
// 64
|
|
// [metadata]
|
|
// 128
|
|
// 64
|
|
// [metadata]
|
|
|
|
n, err := mi.Read(buffer)
|
|
So(err, ShouldBeNil)
|
|
So(n, ShouldEqual, 128)
|
|
|
|
n, err = mi.Read(buffer)
|
|
So(err, ShouldBeNil)
|
|
So(n, ShouldEqual, 64)
|
|
|
|
n, err = mi.Read(buffer)
|
|
So(err, ShouldBeNil)
|
|
So(n, ShouldEqual, 1)
|
|
So(buffer[0], ShouldEqual, 0) // no metadata => zero length!
|
|
|
|
mi.Metadata = map[string]string{
|
|
"StreamTitle": "Testing",
|
|
}
|
|
|
|
n, err = mi.Read(buffer)
|
|
So(err, ShouldBeNil)
|
|
So(n, ShouldEqual, 128)
|
|
|
|
n, err = mi.Read(buffer)
|
|
So(err, ShouldBeNil)
|
|
So(n, ShouldEqual, 64)
|
|
|
|
n, err = mi.Read(buffer)
|
|
So(err, ShouldBeNil)
|
|
So(n, ShouldEqual, 1+32)
|
|
So(buffer[0], ShouldEqual, 2) // "StreamTitle='Testing';" => 22 bytes => quantized to 2 * 16 bytes
|
|
So(string(buffer[1:23]), ShouldEqual, "StreamTitle='Testing';")
|
|
So(buffer[1:23], ShouldResemble, []byte("StreamTitle='Testing';"))
|
|
So(buffer[24:32], ShouldResemble, make([]byte, 8)) // 8 zeroes
|
|
|
|
n, err = mi.Read(buffer)
|
|
So(err, ShouldBeNil)
|
|
So(n, ShouldEqual, 128)
|
|
})
|
|
}
|