diff --git a/functional/config/config_sample_test.go b/functional/config/config_sample_test.go new file mode 100644 index 00000000..af6b55b5 --- /dev/null +++ b/functional/config/config_sample_test.go @@ -0,0 +1,46 @@ +package config + +import ( + "os" + "testing" + + "github.com/coreos/dex/client" + "github.com/coreos/dex/client/manager" + "github.com/coreos/dex/db" +) + +const ( + clientsFile = "../../static/fixtures/clients.json.sample" +) + +// TestClientSample makes sure that the clients.json.sample file is valid and can be loaded properly. +func TestClientSample(t *testing.T) { + f, err := os.Open(clientsFile) + if err != nil { + t.Fatalf("could not open file %q: %v", clientsFile, err) + } + defer f.Close() + + clients, err := client.ClientsFromReader(f) + if err != nil { + t.Fatalf("Error loading Clients: %v", err) + } + + memDB := db.NewMemDB() + repo := db.NewClientRepo(memDB) + for _, c := range clients { + repo.New(nil, c) + } + mgr := manager.NewClientManager(repo, db.TransactionFactory(memDB), manager.ManagerOptions{}) + + for i, c := range clients { + ok, err := mgr.Authenticate(c.Credentials) + if !ok { + t.Errorf("case %d: couldn't authenticate", i) + } + if err != nil { + t.Errorf("case %d: error authenticating: %v", i, err) + } + } + +} diff --git a/test-functional b/test-functional index 5552bc27..bb703b83 100755 --- a/test-functional +++ b/test-functional @@ -4,3 +4,4 @@ source ./env go test $@ github.com/coreos/dex/functional go test $@ github.com/coreos/dex/functional/repo +go test $@ github.com/coreos/dex/functional/config