complete rewrite to grpc
This commit is contained in:
@@ -1,74 +1,8 @@
|
||||
/*
|
||||
Legacy TCP networking (GenericListener / Frame protocol) has been removed
|
||||
as part of the gRPC migration. This file intentionally contains no tests.
|
||||
|
||||
Keeping an empty Go file (with a package declaration) ensures the old
|
||||
tcp-connection test target no longer runs without causing build issues.
|
||||
*/
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net"
|
||||
"testing"
|
||||
|
||||
"github.com/yudhasubki/netpool"
|
||||
)
|
||||
|
||||
func TestGenericConnection(t *testing.T) {
|
||||
|
||||
listenConn := NewConnection("127.0.0.1:51337", nil)
|
||||
listener, err := listenConn.Listen()
|
||||
if err != nil {
|
||||
t.Errorf("Error listening: %v\n", err)
|
||||
}
|
||||
pool, err := netpool.New(func() (net.Conn, error) {
|
||||
return net.Dial("tcp", "127.0.0.1:51337")
|
||||
}, netpool.WithMaxPool(128), netpool.WithMinPool(16))
|
||||
if err != nil {
|
||||
t.Errorf("Error creating pool: %v\n", err)
|
||||
}
|
||||
conn := NewConnection("127.0.0.1:51337", pool)
|
||||
|
||||
datta := []byte("Hello, world!")
|
||||
listener.AddHandler(Ping, func(input *FrameWithPayload, resultChan chan<- FrameWithPayload) error {
|
||||
resultChan <- MakeFrameWithPayload(Pong, 200, nil)
|
||||
return nil
|
||||
})
|
||||
listener.AddHandler(1, func(input *FrameWithPayload, resultChan chan<- FrameWithPayload) error {
|
||||
resultChan <- MakeFrameWithPayload(2, 200, datta)
|
||||
return nil
|
||||
})
|
||||
listener.AddHandler(3, func(input *FrameWithPayload, resultChan chan<- FrameWithPayload) error {
|
||||
return fmt.Errorf("Error in custom handler")
|
||||
})
|
||||
r, err := conn.Call(1, datta)
|
||||
if err != nil {
|
||||
t.Errorf("Error calling: %v\n", err)
|
||||
}
|
||||
if r.Type != 2 {
|
||||
t.Errorf("Expected type 2, got %d\n", r.Type)
|
||||
}
|
||||
|
||||
res, err := conn.Call(3, datta)
|
||||
if err != nil {
|
||||
t.Errorf("Did not expect error, got %v\n", err)
|
||||
return
|
||||
}
|
||||
if res.StatusCode == 200 {
|
||||
t.Errorf("Expected error, got %v\n", res)
|
||||
}
|
||||
|
||||
i := 100
|
||||
results := make(chan FrameWithPayload, i)
|
||||
for i > 0 {
|
||||
go conn.CallAsync(1, datta, results)
|
||||
i--
|
||||
}
|
||||
for i < 100 {
|
||||
r := <-results
|
||||
if r.Type != 2 {
|
||||
t.Errorf("Expected type 2, got %d\n", r.Type)
|
||||
}
|
||||
i++
|
||||
}
|
||||
|
||||
response, err := conn.Call(Ping, nil)
|
||||
if err != nil || response.StatusCode != 200 || response.Type != Pong {
|
||||
t.Errorf("Error connecting to remote %v, err: %v\n", response, err)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user