package user
import (
"reflect"
"testing"
"github.com/openshift/origin/pkg/user/api"
)
func TestInitializerUser(t *testing.T) {
testcases := map[string]struct {
Identity *api.Identity
User *api.User
ExpectedUser *api.User
}{
"empty": {
Identity: &api.Identity{},
User: &api.User{},
ExpectedUser: &api.User{},
},
"empty extra": {
Identity: &api.Identity{Extra: map[string]string{}},
User: &api.User{},
ExpectedUser: &api.User{},
},
"sets full name": {
Identity: &api.Identity{
Extra: map[string]string{"name": "Bob"},
},
User: &api.User{},
ExpectedUser: &api.User{FullName: "Bob"},
},
"respects existing full name": {
Identity: &api.Identity{
Extra: map[string]string{"name": "Bob"},
},
User: &api.User{FullName: "Harold"},
ExpectedUser: &api.User{FullName: "Harold"},
},
}
for k, tc := range testcases {
err := NewDefaultUserInitStrategy().InitializeUser(tc.Identity, tc.User)
if err != nil {
t.Errorf("%s: unexpected error: %v", k, err)
continue
}
if !reflect.DeepEqual(tc.User, tc.ExpectedUser) {
t.Errorf("%s: expected \n\t%#v\ngot\n\t%#v", k, tc.ExpectedUser, tc.User)
}
}
}