peers_test.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package channeldb
  2. import (
  3. "testing"
  4. "time"
  5. "github.com/lightningnetwork/lnd/routing/route"
  6. "github.com/stretchr/testify/require"
  7. )
  8. // TestFlapCount tests lookup and writing of flap count to disk.
  9. func TestFlapCount(t *testing.T) {
  10. db, err := MakeTestDB(t)
  11. require.NoError(t, err)
  12. // Try to read flap count for a peer that we have no records for.
  13. _, err = db.ReadFlapCount(testPub)
  14. require.Equal(t, ErrNoPeerBucket, err)
  15. var (
  16. testPub2 = route.Vertex{2, 2, 2}
  17. peer1FlapCount = &FlapCount{
  18. Count: 20,
  19. LastFlap: time.Unix(100, 23),
  20. }
  21. peer2FlapCount = &FlapCount{
  22. Count: 39,
  23. LastFlap: time.Unix(200, 23),
  24. }
  25. )
  26. peers := map[route.Vertex]*FlapCount{
  27. testPub: peer1FlapCount,
  28. testPub2: peer2FlapCount,
  29. }
  30. err = db.WriteFlapCounts(peers)
  31. require.NoError(t, err)
  32. // Lookup flap count for our first pubkey.
  33. count, err := db.ReadFlapCount(testPub)
  34. require.NoError(t, err)
  35. require.Equal(t, peer1FlapCount, count)
  36. // Lookup our flap count for the second peer.
  37. count, err = db.ReadFlapCount(testPub2)
  38. require.NoError(t, err)
  39. require.Equal(t, peer2FlapCount, count)
  40. }