gitee.com/sasukebo/go-micro/v4@v4.7.1/transport/memory_test.go (about) 1 package transport 2 3 import ( 4 "os" 5 "testing" 6 ) 7 8 func TestMemoryTransport(t *testing.T) { 9 tr := NewMemoryTransport() 10 11 // bind / listen 12 l, err := tr.Listen("127.0.0.1:8080") 13 if err != nil { 14 t.Fatalf("Unexpected error listening %v", err) 15 } 16 defer l.Close() 17 18 // accept 19 go func() { 20 if err := l.Accept(func(sock Socket) { 21 for { 22 var m Message 23 if err := sock.Recv(&m); err != nil { 24 return 25 } 26 if len(os.Getenv("IN_TRAVIS_CI")) == 0 { 27 t.Logf("Server Received %s", string(m.Body)) 28 } 29 if err := sock.Send(&Message{ 30 Body: []byte(`pong`), 31 }); err != nil { 32 return 33 } 34 } 35 }); err != nil { 36 t.Fatalf("Unexpected error accepting %v", err) 37 } 38 }() 39 40 // dial 41 c, err := tr.Dial("127.0.0.1:8080") 42 if err != nil { 43 t.Fatalf("Unexpected error dialing %v", err) 44 } 45 defer c.Close() 46 47 // send <=> receive 48 for i := 0; i < 3; i++ { 49 if err := c.Send(&Message{ 50 Body: []byte(`ping`), 51 }); err != nil { 52 return 53 } 54 var m Message 55 if err := c.Recv(&m); err != nil { 56 return 57 } 58 if len(os.Getenv("IN_TRAVIS_CI")) == 0 { 59 t.Logf("Client Received %s", string(m.Body)) 60 } 61 } 62 63 } 64 65 func TestListener(t *testing.T) { 66 tr := NewMemoryTransport() 67 68 // bind / listen on random port 69 l, err := tr.Listen(":0") 70 if err != nil { 71 t.Fatalf("Unexpected error listening %v", err) 72 } 73 defer l.Close() 74 75 // try again 76 l2, err := tr.Listen(":0") 77 if err != nil { 78 t.Fatalf("Unexpected error listening %v", err) 79 } 80 defer l2.Close() 81 82 // now make sure it still fails 83 l3, err := tr.Listen(":8080") 84 if err != nil { 85 t.Fatalf("Unexpected error listening %v", err) 86 } 87 defer l3.Close() 88 89 if _, err := tr.Listen(":8080"); err == nil { 90 t.Fatal("Expected error binding to :8080 got nil") 91 } 92 }