package memory import ( "reflect" "testing" "github.com/coreos/dex/storage" ) func TestStaticClients(t *testing.T) { s := New() c1 := storage.Client{ID: "foo", Secret: "foo_secret"} c2 := storage.Client{ID: "bar", Secret: "bar_secret"} s.CreateClient(c1) s2 := storage.WithStaticClients(s, []storage.Client{c2}) tests := []struct { id string s storage.Storage wantErr bool wantClient storage.Client }{ {"foo", s, false, c1}, {"bar", s, true, storage.Client{}}, {"foo", s2, true, storage.Client{}}, {"bar", s2, false, c2}, } for i, tc := range tests { gotClient, err := tc.s.GetClient(tc.id) if err != nil { if !tc.wantErr { t.Errorf("case %d: GetClient(%q) %v", i, tc.id, err) } continue } if tc.wantErr { t.Errorf("case %d: GetClient(%q) expected error", i, tc.id) continue } if !reflect.DeepEqual(tc.wantClient, gotClient) { t.Errorf("case %d: expected=%#v got=%#v", i, tc.wantClient, gotClient) } } }