|
- package mqtt_test
-
- import (
- "os"
- "testing"
- "time"
-
- "github.com/AFASystems/presence/internal/pkg/model"
- "github.com/AFASystems/presence/internal/pkg/mqttclient"
- "github.com/AFASystems/presence/internal/pkg/persistence"
- "github.com/boltdb/bolt"
- )
-
- func TestIncomingMQTTProcessor(t *testing.T) {
- ctx := &model.AppContext{
- Beacons: model.BeaconsList{Beacons: make(map[string]model.Beacon)},
- Settings: model.Settings{
- Last_seen_threshold: 10,
- Location_confidence: 3,
- },
- }
-
- tmpfile, _ := os.CreateTemp("", "testdb-*.db")
- defer os.Remove(tmpfile.Name())
-
- db, err := bolt.Open(tmpfile.Name(), 0600, nil)
- if err != nil {
- t.Fatal(err)
- }
- model.Db = db
-
- persistence.LoadState(model.Db, ctx)
-
- ch := mqttclient.IncomingMQTTProcessor(20*time.Millisecond, nil, model.Db, ctx)
- msg := model.Incoming_json{MAC: "15:02:31", Hostname: "testHost", RSSI: -55}
- ch <- msg
-
- time.Sleep(100 * time.Millisecond)
-
- ctx.Beacons.Lock.RLock()
- defer ctx.Beacons.Lock.RUnlock()
-
- if len(ctx.LatestList.LatestList) == 0 {
- t.Fatal("latest list map to update")
- }
- }
|