mirror of
https://github.com/sascha-hemi/spaceDevices.git
synced 2026-03-21 03:04:20 +01:00
137 lines
3.5 KiB
Go
137 lines
3.5 KiB
Go
package mqtt
|
|
|
|
import "testing"
|
|
import (
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_parseWifiSessions(t *testing.T) {
|
|
const testData = `
|
|
{
|
|
"38126": {
|
|
"last-auth": 1509210709,
|
|
"vlan": "default",
|
|
"stats": {
|
|
"rx-multicast-pkts": 499,
|
|
"rx-unicast-pkts": 1817,
|
|
"tx-unicast-pkts": 734,
|
|
"rx-unicast-bytes": 156208,
|
|
"tx-unicast-bytes": 272461,
|
|
"rx-multicast-bytes": 76808
|
|
},
|
|
"ssid": "mainframe",
|
|
"ip": "192.168.2.127",
|
|
"hostname": "-",
|
|
"last-snr": 40,
|
|
"last-rate-mbits": "24",
|
|
"ap": 2,
|
|
"mac": "2c:0e:3d:aa:aa:aa",
|
|
"radio": 2,
|
|
"userinfo": null,
|
|
"session-start": 1509210709,
|
|
"last-rssi-dbm": -55,
|
|
"last-activity": 1509211581
|
|
},
|
|
"38134": {
|
|
"last-auth": 1509211121,
|
|
"vlan": "default",
|
|
"stats": {
|
|
"rx-multicast-pkts": 0,
|
|
"rx-unicast-pkts": 292,
|
|
"tx-unicast-pkts": 654,
|
|
"rx-unicast-bytes": 20510,
|
|
"tx-unicast-bytes": 278565,
|
|
"rx-multicast-bytes": 0
|
|
},
|
|
"ssid": "mainframe",
|
|
"ip": "192.168.2.179",
|
|
"hostname": "-",
|
|
"last-snr": 47,
|
|
"last-rate-mbits": "6",
|
|
"ap": 1,
|
|
"mac": "10:68:3f:bb:bb:bb",
|
|
"radio": 2,
|
|
"userinfo": {
|
|
"name": "Holger",
|
|
"visibility": "show",
|
|
"ts": 1427737817755
|
|
},
|
|
"session-start": 1509211121,
|
|
"last-rssi-dbm": -48,
|
|
"last-activity": 1509211584
|
|
},
|
|
"38135": {
|
|
"last-auth": 1509211163,
|
|
"vlan": "default",
|
|
"stats": {
|
|
"rx-multicast-pkts": 114,
|
|
"rx-unicast-pkts": 8119,
|
|
"tx-unicast-pkts": 12440,
|
|
"rx-unicast-bytes": 1093407,
|
|
"tx-unicast-bytes": 15083985,
|
|
"rx-multicast-bytes": 20379
|
|
},
|
|
"ssid": "mainframe",
|
|
"ip": "192.168.2.35",
|
|
"hostname": "happle",
|
|
"last-snr": 39,
|
|
"last-rate-mbits": "24",
|
|
"ap": 1,
|
|
"mac": "20:c9:d0:cc:cc:cc",
|
|
"radio": 2,
|
|
"userinfo": {
|
|
"name": "Holger",
|
|
"visibility": "show",
|
|
"ts": 1438474581580
|
|
},
|
|
"session-start": 1509211163,
|
|
"last-rssi-dbm": -56,
|
|
"last-activity": 1509211584
|
|
},
|
|
"38137": {
|
|
"last-auth": 1509211199,
|
|
"vlan": "FreiFunk",
|
|
"stats": {
|
|
"rx-multicast-pkts": 14,
|
|
"rx-unicast-pkts": 931,
|
|
"tx-unicast-pkts": 615,
|
|
"rx-unicast-bytes": 70172,
|
|
"tx-unicast-bytes": 265390,
|
|
"rx-multicast-bytes": 1574
|
|
},
|
|
"ssid": "nordwest.freifunk.net",
|
|
"ip": "10.18.159.6",
|
|
"hostname": "iPhonevineSager",
|
|
"last-snr": 13,
|
|
"last-rate-mbits": "2",
|
|
"ap": 1,
|
|
"mac": "b8:53:ac:dd:dd:dd",
|
|
"radio": 1,
|
|
"userinfo": null,
|
|
"session-start": 1509211199,
|
|
"last-rssi-dbm": -82,
|
|
"last-activity": 1509211584
|
|
}
|
|
}
|
|
`
|
|
assert := assert.New(t)
|
|
|
|
sessions := parseWifiSessions([]byte(testData))
|
|
assert.Equal(len(sessions), 4)
|
|
|
|
mustContain := [4]bool{false, false, false, false}
|
|
for _, v := range sessions {
|
|
mustContain[0] = mustContain[0] || (v.Ip == "192.168.2.127" && v.Mac == "2c:0e:3d:aa:aa:aa" && v.Vlan == "default" && v.AP == 2)
|
|
mustContain[1] = mustContain[1] || (v.Ip == "192.168.2.179" && v.Mac == "10:68:3f:bb:bb:bb" && v.Vlan == "default" && v.AP == 1)
|
|
mustContain[2] = mustContain[2] || (v.Ip == "192.168.2.35" && v.Mac == "20:c9:d0:cc:cc:cc" && v.Vlan == "default" && v.AP == 1)
|
|
mustContain[3] = mustContain[3] || (v.Ip == "10.18.159.6" && v.Mac == "b8:53:ac:dd:dd:dd" && v.Vlan == "FreiFunk" && v.AP == 1)
|
|
}
|
|
for _, v := range mustContain {
|
|
assert.True(v)
|
|
}
|
|
|
|
// don't fail for garbage
|
|
sessions = parseWifiSessions([]byte("{ totally invalid json }"))
|
|
assert.Equal(len(sessions), 0)
|
|
}
|