108 lines
1.7 KiB
Go
108 lines
1.7 KiB
Go
|
package connmgr
|
||
|
|
||
|
import (
|
||
|
"testing"
|
||
|
|
||
|
"github.com/stretchr/testify/assert"
|
||
|
)
|
||
|
|
||
|
func TestDial(t *testing.T) {
|
||
|
cfg := Config{
|
||
|
GetAddress: nil,
|
||
|
OnConnection: nil,
|
||
|
OnAccept: nil,
|
||
|
AddressPort: "",
|
||
|
DialTimeout: 0,
|
||
|
}
|
||
|
|
||
|
cm := New(cfg)
|
||
|
err := cm.Run()
|
||
|
assert.Equal(t, nil, err)
|
||
|
|
||
|
ipport := "google.com:80" // google unlikely to go offline, a better approach to test Dialing is welcome.
|
||
|
|
||
|
conn, err := cm.dial(ipport)
|
||
|
assert.Equal(t, nil, err)
|
||
|
assert.NotEqual(t, nil, conn)
|
||
|
}
|
||
|
func TestConnect(t *testing.T) {
|
||
|
cfg := Config{
|
||
|
GetAddress: nil,
|
||
|
OnConnection: nil,
|
||
|
OnAccept: nil,
|
||
|
AddressPort: "",
|
||
|
DialTimeout: 0,
|
||
|
}
|
||
|
|
||
|
cm := New(cfg)
|
||
|
cm.Run()
|
||
|
|
||
|
ipport := "google.com:80"
|
||
|
|
||
|
r := Request{Addr: ipport}
|
||
|
|
||
|
err := cm.Connect(&r)
|
||
|
assert.Nil(t, err)
|
||
|
|
||
|
assert.Equal(t, 1, len(cm.ConnectedList))
|
||
|
|
||
|
}
|
||
|
func TestNewRequest(t *testing.T) {
|
||
|
|
||
|
address := "google.com:80"
|
||
|
|
||
|
var getAddr = func() (string, error) {
|
||
|
return address, nil
|
||
|
}
|
||
|
|
||
|
cfg := Config{
|
||
|
GetAddress: getAddr,
|
||
|
OnConnection: nil,
|
||
|
OnAccept: nil,
|
||
|
AddressPort: "",
|
||
|
DialTimeout: 0,
|
||
|
}
|
||
|
|
||
|
cm := New(cfg)
|
||
|
|
||
|
cm.Run()
|
||
|
|
||
|
cm.NewRequest()
|
||
|
|
||
|
if _, ok := cm.ConnectedList[address]; ok {
|
||
|
assert.Equal(t, true, ok)
|
||
|
assert.Equal(t, 1, len(cm.ConnectedList))
|
||
|
return
|
||
|
}
|
||
|
|
||
|
assert.Fail(t, "Could not find the address in the connected lists")
|
||
|
|
||
|
}
|
||
|
func TestDisconnect(t *testing.T) {
|
||
|
|
||
|
address := "google.com:80"
|
||
|
|
||
|
var getAddr = func() (string, error) {
|
||
|
return address, nil
|
||
|
}
|
||
|
|
||
|
cfg := Config{
|
||
|
GetAddress: getAddr,
|
||
|
OnConnection: nil,
|
||
|
OnAccept: nil,
|
||
|
AddressPort: "",
|
||
|
DialTimeout: 0,
|
||
|
}
|
||
|
|
||
|
cm := New(cfg)
|
||
|
|
||
|
cm.Run()
|
||
|
|
||
|
cm.NewRequest()
|
||
|
|
||
|
cm.Disconnect(address)
|
||
|
|
||
|
assert.Equal(t, 0, len(cm.ConnectedList))
|
||
|
|
||
|
}
|