Add tests for load balancer function logic by Dmitrii Dolgov
This commit is contained in:
commit
edf710d772
|
|
@ -17,4 +17,4 @@ install:
|
|||
- make deps
|
||||
|
||||
script:
|
||||
- travis_wait 20 goveralls -service=travis-ci -package ./pkg/... -package ./cmd/... -v
|
||||
- travis_wait 20 goveralls -service=travis-ci -package ./pkg/... -v
|
||||
|
|
|
|||
|
|
@ -6,6 +6,9 @@ pipeline:
|
|||
GOPATH: /root/go
|
||||
OPERATOR_TOP_DIR: /root/go/src/github.com/zalando-incubator
|
||||
commands:
|
||||
- desc: 'Update'
|
||||
cmd: |
|
||||
apt-get update
|
||||
- desc: 'Install required build software'
|
||||
cmd: |
|
||||
apt-get install -y make git apt-transport-https ca-certificates curl
|
||||
|
|
|
|||
|
|
@ -0,0 +1,94 @@
|
|||
package cluster
|
||||
|
||||
import (
|
||||
"github.com/zalando-incubator/postgres-operator/pkg/spec"
|
||||
"github.com/zalando-incubator/postgres-operator/pkg/util/config"
|
||||
"github.com/zalando-incubator/postgres-operator/pkg/util/k8sutil"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func True() *bool {
|
||||
b := true
|
||||
return &b
|
||||
}
|
||||
|
||||
func False() *bool {
|
||||
b := false
|
||||
return &b
|
||||
}
|
||||
|
||||
func TestCreateLoadBalancerLogic(t *testing.T) {
|
||||
var cluster = New(
|
||||
Config{
|
||||
OpConfig: config.Config{
|
||||
ProtectedRoles: []string{"admin"},
|
||||
Auth: config.Auth{
|
||||
SuperUsername: superUserName,
|
||||
ReplicationUsername: replicationUserName,
|
||||
},
|
||||
},
|
||||
}, k8sutil.KubernetesClient{}, spec.Postgresql{}, logger)
|
||||
|
||||
testName := "TestCreateLoadBalancerLogic"
|
||||
tests := []struct {
|
||||
subtest string
|
||||
role PostgresRole
|
||||
spec *spec.PostgresSpec
|
||||
opConfig config.Config
|
||||
result bool
|
||||
}{
|
||||
{
|
||||
subtest: "new format, load balancer is enabled for replica",
|
||||
role: Replica,
|
||||
spec: &spec.PostgresSpec{EnableReplicaLoadBalancer: True()},
|
||||
opConfig: config.Config{},
|
||||
result: true,
|
||||
},
|
||||
{
|
||||
subtest: "new format, load balancer is disabled for replica",
|
||||
role: Replica,
|
||||
spec: &spec.PostgresSpec{EnableReplicaLoadBalancer: False()},
|
||||
opConfig: config.Config{},
|
||||
result: false,
|
||||
},
|
||||
{
|
||||
subtest: "new format, load balancer isn't specified for replica",
|
||||
role: Replica,
|
||||
spec: &spec.PostgresSpec{EnableReplicaLoadBalancer: nil},
|
||||
opConfig: config.Config{EnableReplicaLoadBalancer: true},
|
||||
result: true,
|
||||
},
|
||||
{
|
||||
subtest: "new format, load balancer isn't specified for replica",
|
||||
role: Replica,
|
||||
spec: &spec.PostgresSpec{EnableReplicaLoadBalancer: nil},
|
||||
opConfig: config.Config{EnableReplicaLoadBalancer: false},
|
||||
result: false,
|
||||
},
|
||||
{
|
||||
subtest: "old format, load balancer is enabled for replica",
|
||||
role: Replica,
|
||||
spec: &spec.PostgresSpec{ReplicaLoadBalancer: True()},
|
||||
opConfig: config.Config{},
|
||||
result: true,
|
||||
},
|
||||
{
|
||||
subtest: "old format has priority",
|
||||
role: Replica,
|
||||
spec: &spec.PostgresSpec{
|
||||
ReplicaLoadBalancer: True(),
|
||||
EnableReplicaLoadBalancer: False(),
|
||||
},
|
||||
opConfig: config.Config{},
|
||||
result: true,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
cluster.OpConfig = tt.opConfig
|
||||
result := cluster.shouldCreateLoadBalancerForService(tt.role, tt.spec)
|
||||
if tt.result != result {
|
||||
t.Errorf("%s %s: Load balancer is %t, expect %t for role %#v and spec %#v",
|
||||
testName, tt.subtest, result, tt.result, tt.role, tt.spec)
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Reference in New Issue