session_test.go 637 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package mux_test
  2. import (
  3. "testing"
  4. . "v2ray.com/core/app/proxyman/mux"
  5. . "v2ray.com/ext/assert"
  6. )
  7. func TestSessionManagerAdd(t *testing.T) {
  8. assert := With(t)
  9. m := NewSessionManager()
  10. s := m.Allocate()
  11. assert(s.ID, Equals, uint16(1))
  12. assert(m.Size(), Equals, 1)
  13. s = m.Allocate()
  14. assert(s.ID, Equals, uint16(2))
  15. assert(m.Size(), Equals, 2)
  16. s = &Session{
  17. ID: 4,
  18. }
  19. m.Add(s)
  20. assert(s.ID, Equals, uint16(4))
  21. }
  22. func TestSessionManagerClose(t *testing.T) {
  23. assert := With(t)
  24. m := NewSessionManager()
  25. s := m.Allocate()
  26. assert(m.CloseIfNoSession(), IsFalse)
  27. m.Remove(s.ID)
  28. assert(m.CloseIfNoSession(), IsTrue)
  29. }