package repo import ( "os" "testing" "github.com/coreos/dex/connector" "github.com/coreos/dex/db" ) func newConnectorConfigRepo(t *testing.T, configs []connector.ConnectorConfig) connector.ConnectorConfigRepo { if os.Getenv("DEX_TEST_DSN") == "" { return connector.NewConnectorConfigRepoFromConfigs(configs) } dbMap := connect(t) repo := db.NewConnectorConfigRepo(dbMap) if err := repo.Set(configs); err != nil { t.Fatalf("Unable to set connector configs: %v", err) } return repo } func TestConnectorConfigRepoGetByID(t *testing.T) { tests := []struct { cfgs []connector.ConnectorConfig id string err error }{ { cfgs: []connector.ConnectorConfig{ &connector.LocalConnectorConfig{ID: "local"}, }, id: "local", }, { cfgs: []connector.ConnectorConfig{ &connector.LocalConnectorConfig{ID: "local1"}, &connector.LocalConnectorConfig{ID: "local2"}, }, id: "local2", }, { cfgs: []connector.ConnectorConfig{ &connector.LocalConnectorConfig{ID: "local1"}, &connector.LocalConnectorConfig{ID: "local2"}, }, id: "foo", err: connector.ErrorNotFound, }, } for i, tt := range tests { repo := newConnectorConfigRepo(t, tt.cfgs) if _, err := repo.GetConnectorByID(nil, tt.id); err != tt.err { t.Errorf("case %d: want=%v, got=%v", i, tt.err, err) } } }