43 lines
796 B
Go
43 lines
796 B
Go
|
package respond
|
||
|
|
||
|
import (
|
||
|
"io/ioutil"
|
||
|
"net"
|
||
|
"reflect"
|
||
|
"testing"
|
||
|
|
||
|
"github.com/FreifunkBremen/respond-collector/data"
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func TestParse(t *testing.T) {
|
||
|
assert := assert.New(t)
|
||
|
var decompressed *data.NodeInfo
|
||
|
|
||
|
// callback function
|
||
|
onReceive := func(addr net.UDPAddr, msg interface{}) {
|
||
|
switch msg := msg.(type) {
|
||
|
case *data.NodeInfo:
|
||
|
decompressed = msg
|
||
|
default:
|
||
|
t.Error("unexpected message:", msg)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
collector := &Collector{
|
||
|
msgType: reflect.TypeOf(data.NodeInfo{}),
|
||
|
onReceive: onReceive,
|
||
|
}
|
||
|
|
||
|
// read testdata
|
||
|
compressed, err := ioutil.ReadFile("testdata/nodeinfo.flated")
|
||
|
assert.Nil(err)
|
||
|
|
||
|
collector.parse(&Response{
|
||
|
Raw: compressed,
|
||
|
})
|
||
|
|
||
|
assert.NotNil(decompressed)
|
||
|
assert.Equal("f81a67a5e9c1", decompressed.NodeId)
|
||
|
}
|