You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

74 lines
1.8 KiB
Go

package bluetooth
import (
"strings"
"testing"
)
func TestUUIDString(t *testing.T) {
checkUUID(t, New16BitUUID(0x1234), "00001234-0000-1000-8000-00805f9b34fb")
}
func checkUUID(t *testing.T, uuid UUID, check string) {
if uuid.String() != check {
t.Errorf("expected UUID %s but got %s", check, uuid.String())
}
}
func TestParseUUIDTooSmall(t *testing.T) {
_, e := ParseUUID("00001234-0000-1000-8000-00805f9b34f")
if e != errInvalidUUID {
t.Errorf("expected errInvalidUUID but got %v", e)
}
}
func TestParseUUIDTooLarge(t *testing.T) {
_, e := ParseUUID("00001234-0000-1000-8000-00805F9B34FB0")
if e != errInvalidUUID {
t.Errorf("expected errInvalidUUID but got %v", e)
}
}
func TestStringUUID(t *testing.T) {
uuidString := "00001234-0000-1000-8000-00805f9b34fb"
u, e := ParseUUID(uuidString)
if e != nil {
t.Errorf("expected nil but got %v", e)
}
if u.String() != uuidString {
t.Errorf("expected %s but got %s", uuidString, u.String())
}
}
func TestStringUUIDUpperCase(t *testing.T) {
uuidString := strings.ToUpper("00001234-0000-1000-8000-00805f9b34fb")
u, e := ParseUUID(uuidString)
if e != nil {
t.Errorf("expected nil but got %v", e)
}
if !strings.EqualFold(u.String(), uuidString) {
t.Errorf("%s does not match %s ignoring case", uuidString, u.String())
}
}
func TestStringUUIDLowerCase(t *testing.T) {
uuidString := strings.ToLower("00001234-0000-1000-8000-00805f9b34fb")
u, e := ParseUUID(uuidString)
if e != nil {
t.Errorf("expected nil but got %v", e)
}
if !strings.EqualFold(u.String(), uuidString) {
t.Errorf("%s does not match %s ignoring case", uuidString, u.String())
}
}
func BenchmarkUUIDToString(b *testing.B) {
uuid, e := ParseUUID("00001234-0000-1000-8000-00805f9b34fb")
if e != nil {
b.Errorf("expected nil but got %v", e)
}
for i := 0; i < b.N; i++ {
_ = uuid.String()
}
}