session_test.go 756 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package mux_test
  2. import (
  3. "testing"
  4. . "github.com/xtls/xray-core/common/mux"
  5. )
  6. func TestSessionManagerAdd(t *testing.T) {
  7. m := NewSessionManager()
  8. s := m.Allocate()
  9. if s.ID != 1 {
  10. t.Error("id: ", s.ID)
  11. }
  12. if m.Size() != 1 {
  13. t.Error("size: ", m.Size())
  14. }
  15. s = m.Allocate()
  16. if s.ID != 2 {
  17. t.Error("id: ", s.ID)
  18. }
  19. if m.Size() != 2 {
  20. t.Error("size: ", m.Size())
  21. }
  22. s = &Session{
  23. ID: 4,
  24. }
  25. m.Add(s)
  26. if s.ID != 4 {
  27. t.Error("id: ", s.ID)
  28. }
  29. if m.Size() != 3 {
  30. t.Error("size: ", m.Size())
  31. }
  32. }
  33. func TestSessionManagerClose(t *testing.T) {
  34. m := NewSessionManager()
  35. s := m.Allocate()
  36. if m.CloseIfNoSession() {
  37. t.Error("able to close")
  38. }
  39. m.Remove(false, s.ID)
  40. if !m.CloseIfNoSession() {
  41. t.Error("not able to close")
  42. }
  43. }