Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

base_network_test.go 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. package network_test
  2. import (
  3. "context"
  4. "testing"
  5. "github.com/9seconds/mtg/v2/network/v2"
  6. "github.com/stretchr/testify/assert"
  7. "github.com/stretchr/testify/suite"
  8. )
  9. type BaseNetworkTestSuite struct {
  10. EchoServerTestSuite
  11. net network.Network
  12. }
  13. func (suite *BaseNetworkTestSuite) SetupSuite() {
  14. suite.EchoServerTestSuite.SetupSuite()
  15. suite.net = network.New(nil, "agent", 0, 0, 0)
  16. }
  17. func (suite *BaseNetworkTestSuite) TestDialUnknownNetwork() {
  18. testData := []string{
  19. "udp",
  20. "udp4",
  21. "udp6",
  22. "unix",
  23. }
  24. for _, name := range testData {
  25. suite.T().Run(name, func(t *testing.T) {
  26. _, err := suite.net.Dial(name, suite.EchoServerAddr())
  27. assert.Error(t, err)
  28. })
  29. }
  30. }
  31. func (suite *BaseNetworkTestSuite) TestDial() {
  32. conn, err := suite.net.Dial("tcp4", suite.EchoServerAddr())
  33. suite.NoError(err)
  34. buf := []byte{1, 2, 3, 4, 5}
  35. n, err := conn.Write(buf)
  36. suite.Equal(5, n)
  37. suite.NoError(err)
  38. another := make([]byte, len(buf))
  39. n, err = conn.Read(another)
  40. suite.NoError(err)
  41. suite.Equal(len(another), n)
  42. suite.Equal(buf, another)
  43. }
  44. func (suite *BaseNetworkTestSuite) TestDialContextOk() {
  45. conn, err := suite.net.DialContext(context.Background(), "tcp4", suite.EchoServerAddr())
  46. suite.NoError(err)
  47. buf := []byte{1, 2, 3, 4, 5}
  48. n, err := conn.Write(buf)
  49. suite.Equal(5, n)
  50. suite.NoError(err)
  51. another := make([]byte, len(buf))
  52. n, err = conn.Read(another)
  53. suite.NoError(err)
  54. suite.Equal(len(another), n)
  55. suite.Equal(buf, another)
  56. }
  57. func (suite *BaseNetworkTestSuite) TestDialContextClosed() {
  58. ctx, cancel := context.WithCancel(context.Background())
  59. cancel()
  60. _, err := suite.net.DialContext(ctx, "tcp4", suite.EchoServerAddr())
  61. suite.ErrorIs(err, ctx.Err())
  62. }
  63. func TestNetworkBase(t *testing.T) {
  64. t.Parallel()
  65. suite.Run(t, &BaseNetworkTestSuite{})
  66. }