.github
alerting
client
client.go
client_test.go
config
controller
core
docs
examples
jsonpath
k8s
k8stest
metric
pattern
security
storage
util
vendor
watchdog
web
.dockerignore
.gitattributes
.gitignore
Dockerfile
LICENSE.md
Makefile
README.md
config.yaml
go.mod
go.sum
main.go
108 lines
2.7 KiB
Go
108 lines
2.7 KiB
Go
package client
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
)
|
|
|
|
func TestGetHTTPClient(t *testing.T) {
|
|
if secureHTTPClient != nil {
|
|
t.Error("secureHTTPClient should've been nil since it hasn't been called a single time yet")
|
|
}
|
|
if insecureHTTPClient != nil {
|
|
t.Error("insecureHTTPClient should've been nil since it hasn't been called a single time yet")
|
|
}
|
|
_ = GetHTTPClient(false)
|
|
if secureHTTPClient == nil {
|
|
t.Error("secureHTTPClient shouldn't have been nil, since it has been called once")
|
|
}
|
|
if insecureHTTPClient != nil {
|
|
t.Error("insecureHTTPClient should've been nil since it hasn't been called a single time yet")
|
|
}
|
|
_ = GetHTTPClient(true)
|
|
if secureHTTPClient == nil {
|
|
t.Error("secureHTTPClient shouldn't have been nil, since it has been called once")
|
|
}
|
|
if insecureHTTPClient == nil {
|
|
t.Error("insecureHTTPClient shouldn't have been nil, since it has been called once")
|
|
}
|
|
}
|
|
|
|
func TestPing(t *testing.T) {
|
|
pingTimeout = 500 * time.Millisecond
|
|
if success, rtt := Ping("127.0.0.1"); !success {
|
|
t.Error("expected true")
|
|
if rtt == 0 {
|
|
t.Error("Round-trip time returned on success should've higher than 0")
|
|
}
|
|
}
|
|
if success, rtt := Ping("256.256.256.256"); success {
|
|
t.Error("expected false, because the IP is invalid")
|
|
if rtt != 0 {
|
|
t.Error("Round-trip time returned on failure should've been 0")
|
|
}
|
|
}
|
|
if success, rtt := Ping("192.168.152.153"); success {
|
|
t.Error("expected false, because the IP is valid but the host should be unreachable")
|
|
if rtt != 0 {
|
|
t.Error("Round-trip time returned on failure should've been 0")
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestCanPerformStartTLS(t *testing.T) {
|
|
type args struct {
|
|
address string
|
|
insecure bool
|
|
}
|
|
tests := []struct {
|
|
name string
|
|
args args
|
|
wantConnected bool
|
|
wantErr bool
|
|
}{
|
|
{
|
|
name: "invalid address",
|
|
args: args{
|
|
address: "test",
|
|
},
|
|
wantConnected: false,
|
|
wantErr: true,
|
|
},
|
|
{
|
|
name: "error dial",
|
|
args: args{
|
|
address: "test:1234",
|
|
},
|
|
wantConnected: false,
|
|
wantErr: true,
|
|
},
|
|
{
|
|
name: "valid starttls",
|
|
args: args{
|
|
address: "smtp.gmail.com:587",
|
|
},
|
|
wantConnected: true,
|
|
wantErr: false,
|
|
},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
connected, _, err := CanPerformStartTLS(tt.args.address, tt.args.insecure)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("CanPerformStartTLS() err=%v, wantErr=%v", err, tt.wantErr)
|
|
return
|
|
}
|
|
if connected != tt.wantConnected {
|
|
t.Errorf("CanPerformStartTLS() connected=%v, wantConnected=%v", connected, tt.wantConnected)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestCanCreateTCPConnection(t *testing.T) {
|
|
if CanCreateTCPConnection("127.0.0.1") {
|
|
t.Error("should've failed, because there's no port in the address")
|
|
}
|
|
}
|