// testManagerAddUser check if add user work func testManagerAddUser(t *testing.T, mngr authmodel.Manager) string { ps := "zaq123456" u1, err := mngr.AddUser("*****@*****.**", ps, true) if err != nil { t.Fatal("cannot create new user:"******"must initial the LastActivity and JoinDay") } _, err = mngr.AddUser("*****@*****.**", ps, true) if err != authmodel.ErrDuplicateEmail { t.Fatal("must check for duplicate email:", err) } err = mngr.ComparePassword(ps, u1.Pwd) if err != nil { t.Fatal("password hash error:", err) } return *u1.Id }
// testManagerFindAllUser add 10 users the do test about partial and projection select func testManagerFindAllUser(t *testing.T, mngr authmodel.Manager, gid string) { users := make([]*authmodel.User, 10) var err error users[0], err = mngr.AddUser("*****@*****.**", "testing123edc", true) if err != nil { t.Fatal("cannot add user", err) } users[1], err = mngr.AddUser("*****@*****.**", "testing123edc", true) if err != nil { t.Fatal("cannot add user", err) } users[2], err = mngr.AddUser("*****@*****.**", "testing123edc", true) if err != nil { t.Fatal("cannot add user", err) } users[3], err = mngr.AddUser("*****@*****.**", "testing123edc", true) if err != nil { t.Fatal("cannot add user", err) } users[4], err = mngr.AddUser("*****@*****.**", "testing123edc", true) if err != nil { t.Fatal("cannot add user", err) } users[5], err = mngr.AddUser("*****@*****.**", "testing123edc", true) if err != nil { t.Fatal("cannot add user", err) } users[6], err = mngr.AddUser("*****@*****.**", "testing123edc", true) if err != nil { t.Fatal("cannot add user", err) } users[7], err = mngr.AddUser("*****@*****.**", "testing123edc", true) if err != nil { t.Fatal("cannot add user", err) } users[8], err = mngr.AddUserDetail("*****@*****.**", "testing123edc", true, nil, nil, nil, []string{gid}) if err != nil { t.Fatal("cannot add user", err) } users[9], err = mngr.AddUserDetail("*****@*****.**", "testing123edc", true, nil, nil, nil, []string{gid}) if err != nil { t.Fatal("cannot add user", err) } // get all user at the same time // should return the full list of 10 users userList, err := mngr.FindAllUser(-1, "", nil, nil) if n := len(userList); n != 10 { t.Fatal("get all user failed, expect 10 users, found", n) } // get all user belong to gid userList, err = mngr.FindAllUser(-1, "", nil, []string{gid}) if n := len(userList); n != 2 { t.Fatal("get all user with groups id failed, expect 2 users, found", n) } // get a single user with specific feilds. userList, err = mngr.FindAllUser(1, "", []string{"Id", "Approved"}, nil) if n := len(userList); n != 1 { t.Fatal("get all user failed, expect 1 users, found", n) } if userList[0].Id == nil || userList[0].Approved == nil { t.Fatal("get all user failed retrieve specifiec fields") } if u := userList[0]; u.Email != nil || u.Pwd != nil || u.LastActivity != nil { t.Fatal("get all user failed not retrieved unspecific fields") } // get a part of user list userList1, err := mngr.FindAllUser(5, "", nil, nil) if n := len(userList1); n != 5 { t.Fatal("get all user failed, expect 5 but got", n) } // get the other part userList2, err := mngr.FindAllUser(5, *userList1[4].Id, nil, nil) if n := len(userList2); n != 5 { t.Fatal("get all user with offset id failed, expect 5 but got", n) } // and check if they are "paging" right for _, u1 := range userList1 { for _, u2 := range userList2 { if *u1.Id == *u2.Id { t.Fatal("get all user failed with limit and offset") } } } }