mirror of
https://github.com/jwetzell/osc-go.git
synced 2026-08-11 10:03:39 +00:00
68 lines
1.7 KiB
Go
68 lines
1.7 KiB
Go
package osc
|
|
|
|
import (
|
|
"fmt"
|
|
"reflect"
|
|
"testing"
|
|
)
|
|
|
|
// TestHelloName calls greetings.Hello with a name, checking
|
|
// for a valid return value.
|
|
func TestOSCEncoding(t *testing.T) {
|
|
|
|
testCases := []struct {
|
|
description string
|
|
message OSCMessage
|
|
expected []byte
|
|
}{
|
|
{
|
|
"simple hello",
|
|
OSCMessage{
|
|
Address: "/hello",
|
|
Args: []OSCArg{},
|
|
},
|
|
[]byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 0, 0, 0},
|
|
},
|
|
{
|
|
"simple address string arg",
|
|
OSCMessage{
|
|
Address: "/hello",
|
|
Args: []OSCArg{
|
|
{
|
|
Type: "s",
|
|
Value: "arg1",
|
|
},
|
|
},
|
|
},
|
|
[]byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 115, 0, 0, 97, 114, 103, 49, 0, 0, 0, 0},
|
|
},
|
|
{
|
|
description: "simple address integer arg",
|
|
message: OSCMessage{Address: "/hello", Args: []OSCArg{{Type: "i", Value: 35}}},
|
|
expected: []byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 105, 0, 0, 0, 0, 0, 35},
|
|
},
|
|
{
|
|
description: "simple address float arg",
|
|
message: OSCMessage{Address: "/hello", Args: []OSCArg{{Type: "f", Value: 34.5}}},
|
|
expected: []byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 102, 0, 0, 66, 10, 0, 0},
|
|
},
|
|
{
|
|
description: "simple address blob arg",
|
|
message: OSCMessage{Address: "/hello", Args: []OSCArg{OSCArg{Type: "b", Value: []byte{98, 108, 111, 98}}}},
|
|
expected: []byte{47, 104, 101, 108, 108, 111, 0, 0, 44, 98, 0, 0, 0, 0, 0, 4, 98, 108, 111, 98},
|
|
},
|
|
}
|
|
|
|
for _, testCase := range testCases {
|
|
|
|
actual := ToBytes(testCase.message)
|
|
|
|
if !reflect.DeepEqual(actual, testCase.expected) {
|
|
t.Errorf("Test '%s' failed to encode properly", testCase.description)
|
|
fmt.Printf("expected: %v\n", testCase.expected)
|
|
fmt.Printf("actual: %v\n", actual)
|
|
}
|
|
}
|
|
|
|
}
|