wifictld-analyzer/capture/socket_msg_test.go

66 lines
2.2 KiB
Go

package capture
import (
"encoding/hex"
"testing"
"time"
"github.com/stretchr/testify/assert"
"github.com/bdlm/log"
"github.com/bdlm/std/logger"
)
func init() {
DEBUG = true
log.SetLevel(logger.Debug)
}
func TestMsgIsTypes(t *testing.T) {
assert := assert.New(t)
types := SocketMSGType(5)
assert.True(types.Is(SocketMSGTypeRequest))
assert.False(types.Is(SocketMSGTypeResponse))
assert.True(types.Is(SocketMSGTypeClient))
assert.False(types.Is(SocketMSGTypeStats))
assert.Equal(SocketMSGType(5), SocketMSGType(SocketMSGTypeRequest|SocketMSGTypeClient))
}
func TestMsgString(t *testing.T) {
assert := assert.New(t)
msg := SocketMSG{
Types: SocketMSGTypeRequest | SocketMSGTypeResponse | SocketMSGTypeClient,
Client: &WifiClient{
FreqHighest: 2464,
},
}
assert.Equal("request response client(mac= freq=2464 ssi_l=0 ssi_h=0 tprobe=0 tauth=0 authed=false time=0001-01-01 00:00:00 +0000 UTC) ", msg.String())
}
func TestMsgMarshal(t *testing.T) {
assert := assert.New(t)
dst := make([]byte, MaxDataGramSize)
_, err := hex.Decode(dst, []byte("00000005f0cfa13375295b0f8b92000000000101099effa300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"))
if err != nil {
log.Fatal(err)
}
msg, _ := NewSocketMSG(dst)
assert.Equal(SocketMSGType(SocketMSGTypeRequest|SocketMSGTypeClient), msg.Types)
assert.Equal("f0:cf:a1:33:75:29", msg.Client.Addr.String())
assert.Equal("2018-05-31T05:43:46Z", msg.Client.Time.UTC().Format(time.RFC3339))
assert.Equal(0, int(msg.Client.TryProbe))
assert.Equal(0, int(msg.Client.TryAuth))
assert.True(msg.Client.Connected)
assert.True(msg.Client.Authed)
assert.Equal(2462, int(msg.Client.FreqHighest))
assert.Equal(-93, int(msg.Client.SignalLowFreq))
assert.Equal(0, int(msg.Client.SignalHighFreq))
result, _ := msg.Marshal()
assert.Equal(dst, result)
}