/*
NAME
  rtp_test.go

DESCRIPTION
  See Readme.md

AUTHOR
  Saxon Nelson-Milton (saxon@ausocean.org)

LICENSE
  rtp_test.go is Copyright (C) 2017 the Australian Ocean Lab (AusOcean)

  It is free software: you can redistribute it and/or modify them
  under the terms of the GNU General Public License as published by the
  Free Software Foundation, either version 3 of the License, or (at your
  option) any later version.

  It is distributed in the hope that it will be useful, but WITHOUT
  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
  for more details.

  You should have received a copy of the GNU General Public License
  along with revid in gpl.txt. If not, see http://www.gnu.org/licenses.
*/

package rtp

import (
	"reflect"
	"testing"
)

// TODO (saxon): add more tests
var rtpTests = []struct {
	num  int
	pkt  Pkt
	want []byte
}{
	{
		num: 1,
		pkt: Pkt{
			V:       2,
			p:       0,
			X:       0,
			CC:      0,
			M:       0,
			PT:      6,
			SN:      167,
			TS:      160,
			SSRC:    10,
			Payload: []byte{0x00, 0x01, 0x07, 0xf0, 0x56, 0x37, 0x0a, 0x0f},
			Padding: 0,
		},
		want: []byte{
			0x80, 0x06, 0x00, 0xa7,
			0x00, 0x00, 0x00, 0xa0,
			0x00, 0x00, 0x00, 0x0a,
			0x00, 0x01, 0x07, 0xf0,
			0x56, 0x37, 0x0a, 0x0f,
		},
	},
}

func TestRtpPktToByteSlice(t *testing.T) {
	for _, test := range rtpTests {
		got := test.pkt.Bytes(nil)
		if !reflect.DeepEqual(got, test.want) {
			t.Errorf("unexpected error for test %v: got:%v want:%v", test.num, got,
				test.want)
		}
	}
}