clientsmap_test.go 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. package common
  2. import (
  3. "testing"
  4. "github.com/stretchr/testify/assert"
  5. )
  6. func TestClientsMap(t *testing.T) {
  7. m := clientsMap{
  8. clients: make(map[string]int),
  9. }
  10. ip1 := "192.168.1.1"
  11. ip2 := "192.168.1.2"
  12. m.add(ip1)
  13. assert.Equal(t, int32(1), m.getTotal())
  14. assert.Equal(t, 1, m.getTotalFrom(ip1))
  15. assert.Equal(t, 0, m.getTotalFrom(ip2))
  16. m.add(ip1)
  17. m.add(ip2)
  18. assert.Equal(t, int32(3), m.getTotal())
  19. assert.Equal(t, 2, m.getTotalFrom(ip1))
  20. assert.Equal(t, 1, m.getTotalFrom(ip2))
  21. m.add(ip1)
  22. m.add(ip1)
  23. m.add(ip2)
  24. assert.Equal(t, int32(6), m.getTotal())
  25. assert.Equal(t, 4, m.getTotalFrom(ip1))
  26. assert.Equal(t, 2, m.getTotalFrom(ip2))
  27. m.remove(ip2)
  28. assert.Equal(t, int32(5), m.getTotal())
  29. assert.Equal(t, 4, m.getTotalFrom(ip1))
  30. assert.Equal(t, 1, m.getTotalFrom(ip2))
  31. m.remove("unknown")
  32. assert.Equal(t, int32(5), m.getTotal())
  33. assert.Equal(t, 4, m.getTotalFrom(ip1))
  34. assert.Equal(t, 1, m.getTotalFrom(ip2))
  35. m.remove(ip2)
  36. assert.Equal(t, int32(4), m.getTotal())
  37. assert.Equal(t, 4, m.getTotalFrom(ip1))
  38. assert.Equal(t, 0, m.getTotalFrom(ip2))
  39. m.remove(ip1)
  40. m.remove(ip1)
  41. m.remove(ip1)
  42. assert.Equal(t, int32(1), m.getTotal())
  43. assert.Equal(t, 1, m.getTotalFrom(ip1))
  44. assert.Equal(t, 0, m.getTotalFrom(ip2))
  45. m.remove(ip1)
  46. assert.Equal(t, int32(0), m.getTotal())
  47. assert.Equal(t, 0, m.getTotalFrom(ip1))
  48. assert.Equal(t, 0, m.getTotalFrom(ip2))
  49. }