No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.
 
 
 
 

47 líneas
1.0 KiB

  1. package mqtt_test
  2. import (
  3. "os"
  4. "testing"
  5. "time"
  6. "github.com/AFASystems/presence/internal/pkg/model"
  7. "github.com/AFASystems/presence/internal/pkg/mqttclient"
  8. "github.com/AFASystems/presence/internal/pkg/persistence"
  9. "github.com/boltdb/bolt"
  10. )
  11. func TestIncomingMQTTProcessor(t *testing.T) {
  12. ctx := &model.AppContext{
  13. Beacons: model.BeaconsList{Beacons: make(map[string]model.Beacon)},
  14. Settings: model.Settings{
  15. Last_seen_threshold: 10,
  16. Location_confidence: 3,
  17. },
  18. }
  19. tmpfile, _ := os.CreateTemp("", "testdb-*.db")
  20. defer os.Remove(tmpfile.Name())
  21. db, err := bolt.Open(tmpfile.Name(), 0600, nil)
  22. if err != nil {
  23. t.Fatal(err)
  24. }
  25. model.Db = db
  26. persistence.LoadState(model.Db, ctx)
  27. ch := mqttclient.IncomingMQTTProcessor(20*time.Millisecond, nil, model.Db, ctx)
  28. msg := model.Incoming_json{MAC: "15:02:31", Hostname: "testHost", RSSI: -55}
  29. ch <- msg
  30. time.Sleep(100 * time.Millisecond)
  31. ctx.Beacons.Lock.RLock()
  32. defer ctx.Beacons.Lock.RUnlock()
  33. if len(ctx.LatestList.LatestList) == 0 {
  34. t.Fatal("latest list map to update")
  35. }
  36. }