package examples
import (
"io/ioutil"
"testing"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util/yaml"
"github.com/openshift/origin/pkg/cmd/server/api"
_ "github.com/openshift/origin/pkg/cmd/server/api/install"
configapilatest "github.com/openshift/origin/pkg/cmd/server/api/latest"
"github.com/openshift/origin/pkg/cmd/server/api/validation"
)
func TestLDAPSyncConfigFixtures(t *testing.T) {
fixtures := []string{}
// build a list of common configurations for all schemas
schemas := []string{"rfc2307", "ad", "augmented-ad"}
for _, schema := range schemas {
fixtures = append(fixtures, schema+"/sync-config.yaml")
fixtures = append(fixtures, schema+"/sync-config-dn-everywhere.yaml")
fixtures = append(fixtures, schema+"/sync-config-partially-user-defined.yaml")
fixtures = append(fixtures, schema+"/sync-config-user-defined.yaml")
fixtures = append(fixtures, schema+"/sync-config-paging.yaml")
}
fixtures = append(fixtures, "rfc2307/sync-config-tolerating.yaml")
for _, fixture := range fixtures {
var config api.LDAPSyncConfig
yamlConfig, err := ioutil.ReadFile("./../../../../../test/extended/authentication/ldap/" + fixture)
if err != nil {
t.Errorf("could not read fixture at %q: %v", fixture, err)
continue
}
jsonConfig, err := yaml.ToJSON(yamlConfig)
if err != nil {
t.Errorf("could not convert YAML fixture at %q to JSON: %v", fixture, err)
continue
}
if err := runtime.DecodeInto(configapilatest.Codec, jsonConfig, &config); err != nil {
t.Errorf("could not deocde fixture at %q into internal type: %v", fixture, err)
continue
}
if results := validation.ValidateLDAPSyncConfig(&config); len(results.Errors) > 0 {
t.Errorf("validation of fixture at %q failed with %d errors:", fixture, len(results.Errors))
for _, err := range results.Errors {
t.Error(err)
}
}
}
}