forked from mystiq/dex
8d1a6f2324
Also tests that it's being loaded properly (which is not the case in NewClientManagerFromClients, which will be removed in subsequent commit)
46 lines
1,023 B
Go
46 lines
1,023 B
Go
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)
|
|
}
|
|
}
|
|
|
|
}
|