forked from mystiq/dex
47 lines
1,023 B
Go
47 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)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|