mirror of
https://github.com/encounter/go-rtmp.git
synced 2026-03-30 11:12:49 -07:00
73 lines
1.8 KiB
Go
73 lines
1.8 KiB
Go
//
|
|
// Copyright (c) 2018- yutopp (yutopp@gmail.com)
|
|
//
|
|
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
|
// file LICENSE_1_0.txt or copy at https://www.boost.org/LICENSE_1_0.txt)
|
|
//
|
|
|
|
package message
|
|
|
|
import (
|
|
"bytes"
|
|
"github.com/stretchr/testify/assert"
|
|
"io"
|
|
"io/ioutil"
|
|
"testing"
|
|
)
|
|
|
|
func assertEqualMessage(t *testing.T, expected, actual Message) {
|
|
assert.Equal(t, expected.TypeID(), actual.TypeID())
|
|
|
|
switch expected := expected.(type) {
|
|
case *AudioMessage:
|
|
actual, ok := actual.(*AudioMessage)
|
|
assert.True(t, ok)
|
|
|
|
assertEqualPayload(t, expected.Payload, actual.Payload)
|
|
|
|
case *VideoMessage:
|
|
actual, ok := actual.(*VideoMessage)
|
|
assert.True(t, ok)
|
|
|
|
assertEqualPayload(t, expected.Payload, actual.Payload)
|
|
|
|
case *DataMessage:
|
|
actual, ok := actual.(*DataMessage)
|
|
assert.True(t, ok)
|
|
|
|
assert.Equal(t, expected.Name, actual.Name)
|
|
assert.Equal(t, expected.Encoding, actual.Encoding)
|
|
assertEqualPayload(t, expected.Body, actual.Body)
|
|
|
|
case *CommandMessage:
|
|
actual, ok := actual.(*CommandMessage)
|
|
assert.True(t, ok)
|
|
|
|
assert.Equal(t, expected.CommandName, actual.CommandName)
|
|
assert.Equal(t, expected.TransactionID, actual.TransactionID)
|
|
assert.Equal(t, expected.Encoding, actual.Encoding)
|
|
assertEqualPayload(t, expected.Body, actual.Body)
|
|
|
|
default:
|
|
assert.Equal(t, expected, actual)
|
|
}
|
|
}
|
|
|
|
func assertEqualPayload(t *testing.T, expected, actual io.Reader) {
|
|
expectedBin, err := ioutil.ReadAll(expected)
|
|
assert.Nil(t, err)
|
|
switch p := expected.(type) {
|
|
case *bytes.Reader:
|
|
defer p.Seek(0, io.SeekStart) // Restore test case states
|
|
default:
|
|
t.FailNow()
|
|
}
|
|
assert.NotZero(t, len(expectedBin))
|
|
|
|
actualBin, err := ioutil.ReadAll(actual)
|
|
assert.Nil(t, err)
|
|
assert.NotZero(t, len(actualBin))
|
|
|
|
assert.Equal(t, expectedBin, actualBin)
|
|
}
|