UserInfoTest.java 7.31 KB
package com.xkl;

import org.junit.Assert;
import org.junit.Test;

import java.util.HashMap;
import java.util.Map;

import static com.xkl.TokenTest.loginAndGetToken;

/**
 * Created by win7 on 2016/12/25.
 * 用户注册、修改密码、获取个人信息
 */
public class UserInfoTest {
    private static final String URL_USER = Constants.URL_PREFIX + "/userInfo";

    /**
     * 用户注册:
     * register(String adminUser,String adminPass,
     * String user,String pass,String name,String sex,String birthDate,String phone,String idcard)
     */
    @Test
    public void testRegister() {
        String adminUser = Constants.ADMIN_ACCOUNT;
        String adminPass = Constants.ADMIN_PWD;
        String user = "15211112222";
        String pass = "pass152";
        String name = "usernameTest";
        String sex = Constants.MALE;
        String birthDate = "1966-06-12";
        String phone = "13011112222";
        String idcard = "130105196606125555";
        String response = register(adminUser, adminPass, user, pass, name, sex, birthDate, phone, idcard);
        Assert.assertTrue(RtnCodeTools.verifyCode(response, Constants.USER_IS_EXIT));

    }

    @Test
    public void testRegisterWithDiffId() {
        String adminUser = Constants.ADMIN_ACCOUNT;
        String adminPass = Constants.ADMIN_PWD;
        String user = "15233334444";
        String pass = "pass152";
        String name = "usernameTest1";
        String sex = Constants.MALE;
        String birthDate = "1966-06-12";
        String phone = "13011112222";
        String idcard = "110000196606125555";
        String response = register(adminUser, adminPass, user, pass, name, sex, birthDate, phone, idcard);
        Assert.assertTrue(RtnCodeTools.verifyCode(response, Constants.USER_IS_EXIT));

    }

    @Test
    public void testRegisterWithOutIdCard() {
        String adminUser = Constants.ADMIN_ACCOUNT;
        String adminPass = Constants.ADMIN_PWD;
        String user = "15222223333";
        String pass = "pass152";
        String name = "usernameTest2";
        String sex = Constants.FEMALE;
        String birthDate = "1999-12-22";
        String phone = "13011112222";
        String idcard = null;
        register(adminUser, adminPass, user, pass, name, sex, birthDate, phone, idcard);
    }

    /**
     * 用户修改密码
     */
    @Test
    public void testModPass() {
        register(Constants.ADMIN_ACCOUNT, Constants.ADMIN_PWD, "15211112222", "pass152", "usernameTest", "1", "1966-06-12", "13011112222", "130105196606125555");

        Map<String, String> params = new HashMap<String, String>();
        params.put("password", EncodeTools.encode("MD5", "pass152_new"));
        params.put("t", HttpTools.getNow());
        params.put("type", Constants.KEY_ID);
        params.put("sign", HttpTools.getSign(params));
        //获取token
        String token = loginAndGetToken("15211112222", "pass152_new");
        System.out.println(token);
        String response = HttpTools.requestByMapWithToken(URL_USER, "PUT", params, token);
        Assert.assertTrue(RtnCodeTools.verifyCode(response, Constants.USER_MODPASS_LOGOUT));
        System.out.println(response);
    }

    /**
     * 个人信息查询接口
     */
    @Test
    public void testGetUserInfo() {
        Map<String, String> params = new HashMap<String, String>();
        params.put("t", HttpTools.getNow());
        params.put("type", Constants.KEY_ID);
        params.put("sign", HttpTools.getSign(params));
        //获取token
        String token = loginAndGetToken(Constants.USR_ACC, Constants.USR_PWD);
        System.out.println(token);
        String response = HttpTools.requestByMapWithToken(URL_USER, "GET", params, token);
        Assert.assertTrue(RtnCodeTools.verifyCode(response, Constants.CODE_SUCC));
        System.out.println(response);
    }

    public String register(String adminUser, String adminPass,
                           String user, String pass, String name, String sex, String birthDate, String phone, String idcard) {
        Map<String, String> params = new HashMap<String, String>();
        params.put("username", user);
        params.put("password", EncodeTools.encode("MD5", pass));
        params.put("name", name);
        params.put("sex", sex);
        params.put("birthDate", birthDate);
        params.put("phone", phone);
        if (idcard != null && idcard != "")
            params.put("idcard", idcard);
        params.put("t", HttpTools.getNow());
        params.put("type", Constants.KEY_ID);
        params.put("sign", HttpTools.getSign(params));
        String token = TokenTest.adminLoginAndGetToken(adminUser, adminPass);
        String response = HttpTools.requestByMapWithToken(URL_USER, "POST", params, token);
        System.out.println(response);
        return response;
    }

    /**
     * 错误的注册:不带sign
     */
    @Test
    public void testRegisterNoSign() {
        String adminUser = Constants.ADMIN_ACCOUNT;
        String adminPass = Constants.ADMIN_PWD;
        String user = "15211112222";
        String pass = "pass152";
        String name = "usernameTest";
        String sex = Constants.MALE;
        String birthDate = "1966-06-12";
        String phone = "13011112222";
        String idcard = "130105196606125555";
        Map<String, String> params = new HashMap<String, String>();
        params.put("username", user);
        params.put("password", EncodeTools.encode("MD5", pass));
        params.put("name", name);
        params.put("sex", sex);
        params.put("birthDate", birthDate);
        params.put("phone", phone);
        if (idcard != null && idcard != "")
            params.put("idcard", idcard);
        params.put("t", HttpTools.getNow());
        params.put("type", Constants.KEY_ID);
        params.put("sign", "nosign");
        String token = TokenTest.adminLoginAndGetToken(adminUser, adminPass);
        String response = HttpTools.requestByMapWithToken(URL_USER, "POST", params, token);
        Assert.assertTrue(RtnCodeTools.verifyCode(response, Constants.SIGN_ERROR));
        System.out.println(response);
    }

    /**
     * 错误注册:客户端与服务端时间差距过大
     */
    @Test
    public void testRegisterWrongTime() {
        String adminUser = Constants.ADMIN_ACCOUNT;
        String adminPass = Constants.ADMIN_PWD;
        String user = "15211112222";
        String pass = "pass152";
        String name = "usernameTest";
        String sex = Constants.MALE;
        String birthDate = "1966-06-12";
        String phone = "13011112222";
        String idcard = "130105196606125555";
        Map<String, String> params = new HashMap<String, String>();
        params.put("username", user);
        params.put("password", EncodeTools.encode("MD5", pass));
        params.put("name", name);
        params.put("sex", sex);
        params.put("birthDate", birthDate);
        params.put("phone", phone);
        if (idcard != null && idcard != "")
            params.put("idcard", idcard);
        params.put("t", HttpTools.getNow() + 60 * 60 * 26);
        params.put("type", Constants.KEY_ID);
        params.put("sign", "nosign");
        String token = TokenTest.adminLoginAndGetToken(adminUser, adminPass);
        String response = HttpTools.requestByMapWithToken(URL_USER, "POST", params, token);
        Assert.assertTrue(RtnCodeTools.verifyCode(response, Constants.SIGN_ERROR));
        System.out.println(response);
    }
}