1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
|
package beacon
import (
"testing"
"github.com/muka/go-bluetooth/bluez/profile/device"
"github.com/stretchr/testify/assert"
)
func TestCreateIBeacon(t *testing.T) {
uuid := "AAAABBBBCCCCDDDDAAAABBBBCCCCDDDD"
maj := uint16(32000)
min := uint16(11000)
txPwr := uint16(0xB3)
b, err := CreateIBeacon(uuid, maj, min, txPwr)
if err != nil {
t.Fatal(err)
}
b.Device = &device.Device1{
Properties: &device.Device1Properties{},
}
b.Device.Properties.ServiceData = b.props.ServiceData
isBeacon := b.Parse()
assert.True(t, isBeacon)
assert.Equal(t, BeaconTypeIBeacon, string(b.Type))
assert.Equal(t, uuid, b.GetIBeacon().ProximityUUID)
assert.Equal(t, maj, b.GetIBeacon().Major)
assert.Equal(t, min, b.GetIBeacon().Minor)
assert.Equal(t, txPwr, b.GetIBeacon().MeasuredPower)
}
func TestCreateEddystoneURL(t *testing.T) {
url := "http://example.com"
b, err := CreateEddystoneURL(url, 99)
if err != nil {
t.Fatal(err)
}
b.Device = &device.Device1{
Properties: &device.Device1Properties{},
}
b.Device.Properties.ManufacturerData = b.props.ManufacturerData
b.Device.Properties.UUIDs = b.props.ServiceUUIDs
isBeacon := b.Parse()
assert.True(t, isBeacon)
assert.True(t, b.IsEddystone())
assert.Equal(t, string(b.Type), string(BeaconTypeEddystone))
assert.IsType(t, BeaconEddystone{}, b.GetEddystone())
assert.Equal(t, url, b.GetEddystone().URL)
}
func TestCreateEddystoneTLM(t *testing.T) {
batt := uint16(89)
b, err := CreateEddystoneTLM(batt, 10.0, 10, 10)
if err != nil {
t.Fatal(err)
}
b.Device = &device.Device1{
Properties: &device.Device1Properties{},
}
b.Device.Properties.ManufacturerData = b.props.ManufacturerData
b.Device.Properties.UUIDs = b.props.ServiceUUIDs
isBeacon := b.Parse()
assert.True(t, isBeacon)
assert.True(t, b.IsEddystone())
assert.Equal(t, string(b.Type), string(BeaconTypeEddystone))
assert.IsType(t, BeaconEddystone{}, b.GetEddystone())
assert.Equal(t, batt, b.GetEddystone().TLMBatteryVoltage)
}
func TestCreateEddystoneUID(t *testing.T) {
nsUID := "AAAAAAAAAABBBBBBBBBB"
b, err := CreateEddystoneUID(nsUID, "123456123456", 99)
if err != nil {
t.Fatal(err)
}
b.Device = &device.Device1{
Properties: &device.Device1Properties{},
}
b.Device.Properties.ManufacturerData = b.props.ManufacturerData
b.Device.Properties.UUIDs = b.props.ServiceUUIDs
isBeacon := b.Parse()
assert.True(t, isBeacon)
assert.True(t, b.IsEddystone())
assert.Equal(t, string(b.Type), string(BeaconTypeEddystone))
assert.IsType(t, BeaconEddystone{}, b.GetEddystone())
assert.Equal(t, nsUID, b.GetEddystone().UID)
}
|