lib/connections: Refactor status for testing (ref #6361) (#6362)

This commit is contained in:
Simon Frei
2020-02-25 21:18:31 +01:00
committed by GitHub
parent 55238e3b5b
commit 680b0b14db
2 changed files with 56 additions and 8 deletions
+38
View File
@@ -7,6 +7,8 @@
package connections
import (
"context"
"errors"
"net/url"
"testing"
@@ -167,3 +169,39 @@ func TestGetDialer(t *testing.T) {
}
}
}
func TestConnectionStatus(t *testing.T) {
s := newConnectionStatusHandler()
addr := "testAddr"
testErr := errors.New("testErr")
if stats := s.ConnectionStatus(); len(stats) != 0 {
t.Fatal("newly created connectionStatusHandler isn't empty:", len(stats))
}
check := func(in, out error) {
t.Helper()
s.setConnectionStatus(addr, in)
switch stat, ok := s.ConnectionStatus()[addr]; {
case !ok:
t.Fatal("entry missing")
case out == nil:
if stat.Error != nil {
t.Fatal("expected nil error, got", stat.Error)
}
case *stat.Error != out.Error():
t.Fatalf("expected %v error, got %v", out.Error(), *stat.Error)
}
}
check(nil, nil)
check(context.Canceled, nil)
check(testErr, testErr)
check(context.Canceled, testErr)
check(nil, nil)
}