reader_event_test.go 854 B

12345678910111213141516171819202122232425262728293031323334
  1. package uhf
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/require"
  5. )
  6. func TestChannelEventsUseMonotonicIDs(t *testing.T) {
  7. channelEventMu.Lock()
  8. previousQueue := ChannelEventQueue
  9. previousNextID := channelEventNextID
  10. ChannelEventQueue = make([]ChannelEvent, 0, 50)
  11. channelEventNextID = 0
  12. channelEventMu.Unlock()
  13. t.Cleanup(func() {
  14. channelEventMu.Lock()
  15. ChannelEventQueue = previousQueue
  16. channelEventNextID = previousNextID
  17. channelEventMu.Unlock()
  18. })
  19. PushChannelEvent(ChannelEvent{RFIDTag: "A", Timestamp: 100})
  20. PushChannelEvent(ChannelEvent{RFIDTag: "B", Timestamp: 100})
  21. all := GetChannelEvents(0)
  22. require.Len(t, all, 2)
  23. require.Equal(t, uint64(1), all[0].ID)
  24. require.Equal(t, uint64(2), all[1].ID)
  25. afterFirst := GetChannelEvents(all[0].ID)
  26. require.Len(t, afterFirst, 1)
  27. require.Equal(t, "B", afterFirst[0].RFIDTag)
  28. }