206 lines
7.4 KiB
Go
206 lines
7.4 KiB
Go
package jdapi
|
|
|
|
import (
|
|
"net/http"
|
|
"testing"
|
|
|
|
"git.rosy.net.cn/baseapi"
|
|
|
|
"git.rosy.net.cn/baseapi/utils"
|
|
"go.uber.org/zap"
|
|
)
|
|
|
|
var (
|
|
api *API
|
|
sugarLogger *zap.SugaredLogger
|
|
)
|
|
|
|
func init() {
|
|
logger, _ := zap.NewDevelopment()
|
|
sugarLogger = logger.Sugar()
|
|
baseapi.Init(sugarLogger)
|
|
|
|
// sandbox
|
|
// api = New("594ab45a-9a73-4a43-82b0-a64cbd55d883", "06692746f7224695ad4788ce340bc854", "d6b42a35a7414a5490d811654d745c84")
|
|
// prod
|
|
api = New("df045085-c203-465c-87e3-e79279ecf9ed", "425a594759004dcd9b3542e3d7b47ffa", "fb33ef5f67c9423da67e470204dd3af9")
|
|
// 天天果园
|
|
// api = New("c45e6510-00ba-4be2-977e-bcb9c9792cc7", "5d5577a2506f41b8b4ec520ba83490f5", "0b01b9eeb15b41dab1c3d05d95c17a26")
|
|
|
|
//prod zs
|
|
// api = New("6f8d3290-0120-4ad7-8b53-943c67c84f3f", "789279b9ae814ba091ac52815566b54d", "5d668cd227644637bb0fd73ed8118ec8")
|
|
// const cookieValue = "YYJV3NHVBPHLD36FWP6F3EM5PTXJ2XZQS7U4HWRIDPP4IWGUKUIB4XG5N26CZRDLDF7PKOXBPD6BNTUAJLETLZOIWMCVFI3K6MYZIY4QBIXIMXYDJNUKFGJVQTN5356SAD6WPCIHWNQAG7DDMF7L7S3SHCT3RM3CQG7IJIPUQ3THS5UIUYWMKINM7ETUOQB7OBPOPZVCT3ZJY55243TDVXLO25PP4UYSPTTPMNQ7HPMWOJKJ3BJWGVHD243MXH7NZWW264TKN5UOCJBSSSOKD2QQII"
|
|
// const cookieValue = "OPJQMA7B3FTKCAUGO7FHCH5NMBGAWGGXYRNLEHYYZNGNPNIBCAM4IOEPG3NT3RIA44G5C3535Q5LGG4F4SR4AZVLGYKYTKFJJKEAOXENVBL5VXNILRP3GLNVVWA26XZ3VGSYOHA72RICMVZS3G53DTEH3KKMSODEAJKHHXYAH3LVYHN7XCJDFDBTM7ELR5DAISLMYBDKZCAW7ME3IU6YX3SOLHZ7IXBXZ2XSFROMMSKNOYMLDABEV4JA57RIMIX22SNOBCLIFKREPFRN3RZVCFCVTSG7GXALZQUVXLWNYG35TDRA7JURR7VR3YVIP66T6G3SOARECZTEQ27GXNN5VHKRYKPJS72CSISRO5Y"
|
|
// api.SetJdCookie(cookieValue)
|
|
// api.SetCookie("user", "VCQUVHVJI4ELNGFZOYMCDYDUSHEJMPXZRZXSNBRB4MVBNENP72REAAZR3R4SGDJ5ZI4FLYLLN5EGBBMTFCWHZVESIWBNLKZPLHWD6UIBTPXOF5IXM6AVA3V6TUNZD5UJS43AROJ2IRPZWEN5AGZYBUEGD3MSKKBKBSRP3DSEQXLITYNBLFZCHXCA7L4KGOSJRMM7R5IQP7QGLGRQB27AOE4YMLRJ3UPTZADPWJOYB3UZ7UZHLBVZRREEX647O3WQUU4BYXUOFZPIPRR77W3PQV543E")
|
|
api.SetCookieWithStr(`
|
|
lsp-store1.jddj.com=LZSN2D4HNL7VHORO6VYPUBXBW33EQX2RQK5RL67NL62WPT7YDRVO3IZPU2644VM3AF245ANGSYECBFWQWT23NCMR4PSPSYIB2DE4AEG3C54CJ3IVE4NT772Y2ZXOXVHV6MXMGEQMTUA77SWSPFSKHWSL46U5QMM63EFG7M4X6LTPQTVXUQEFGS4MN4SASUJXKO3H5VAYNYSHYPQFRWX33CS3V7ZFZJG5TJBH3ASTKUTN4B27RGRU7M7KEKNI4UAHGIZX33RF2MHCF76BF2KB2Q3HTNXN7FSC2NHYJWBRIIRMP6W44EDED2ZMUGIFYVUY5JBXDO6GUFM74; josl-privilege1.jddj.com=LZSN2D4HNL7VHORO6VYPUBXBW33EQX2RQK5RL67NL62WPT7YDRVO3IZPU2644VM3AF245ANGSYECBFWQWT23NCMR4PSPSYIB2DE4AEG3C54CJ3IVE4NT772Y2ZXOXVHV6MXMGEQMTUA77SWSPFSKHWSL446BI2GZ76YICKHNQQE7LANVONY2SAVICNPUYL3EC2WOWZGHBIBFL2YASQA4SIPT7U327WMVWVWNW7STKUTN4B27RGRU7M7KEKNI4UAHP4BS6QGR22RJNP36KSPH3CWW7B5LYP3Q7XIQACN34TM6JCBC3BWLILQOALXSO3ZBU5Q2RZJH2BMPIU3CGHF22D5GNS3U7O2AN3PH5TI; o2o-pms1.jddj.com=LZSN2D4HNL7VHORO6VYPUBXBW33EQX2RQK5RL67NL62WPT7YDRVO3IZPU2644VM3AF245ANGSYECBFWQWT23NCMR4PSPSYIB2DE4AEG3C54CJ3IVE4NT772Y2ZXOXVHV6MXMGEQMTUA77SWSPFSKHWSL446BI2GZ76YICKHNQQE7LANVONYZR2KMLOWLHCAFI2P76M5DAFNZUD7V5LW3HQ6SB2ZHOMAEFZSUGDFJS2PVBZCSMSBXBXIJ6YFLJLKPH52G7I62SDF5RHGRTVGRAGFPLM; o2o-stock1.jddj.com=LZSN2D4HNL7VHORO6VYPUBXBW33EQX2RQK5RL67NL62WPT7YDRVO3IZPU2644VM3AF245ANGSYECBFWQWT23NCMR4PSPSYIB2DE4AEG3C54CJ3IVE4NT772Y2ZXOXVHV6MXMGEQMTUA77SWSPFSKHWSL446BI2GZ76YICKHNQQE7LANVONYZPQ63PZY7AT3AV3NFZUW43OVQTBSSIABQF7LPHTNYYSJ2LCKKUA5JS2PVBZCSMSBXBXIJ6YFLJLKPSHZBQN5H3C4TCLUKVQGVYJFI7A; store_deviceid=89a38e81dfbb776fa5f866f74ed437a3; store_session=%231616491340877; UM_distinctid=1785e64face506-0d40b0789ccacd-43734711-15f900-1785e64facfd5; jdO2OOpenPortalSessionId=891154C098C60F80008BAEFD62FA1D76.s1; JSESSIONID=D8C44B9F4593E0B675B45112F5ADCBF1.s1
|
|
|
|
`)
|
|
}
|
|
|
|
func TestTest(t *testing.T) {
|
|
sugarLogger.Debug(utils.GetCurTimeStr())
|
|
}
|
|
|
|
func TestAccessAPI(t *testing.T) {
|
|
result, err := api.AccessAPI("address/allcities", nil)
|
|
if err != nil {
|
|
t.Fatalf("Error when accessing AccessAPI: %v", err)
|
|
} else {
|
|
code := result["code"].(string)
|
|
if code != "0" {
|
|
t.Fatalf("code is not 0, %v", code)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestAccessAPINoPage(t *testing.T) {
|
|
result, err := api.AccessAPINoPage("address/allcities", nil, []string{"yn"}, nil, nil)
|
|
if err != nil {
|
|
t.Fatalf("TestAccessAPINoPage return error:%v", err)
|
|
}
|
|
cityInfo := result.([]interface{})
|
|
if len(cityInfo) == 0 {
|
|
t.Fatal("city info is empty")
|
|
}
|
|
oneCity := cityInfo[0].(map[string]interface{})
|
|
if _, ok := oneCity["areaName"]; !ok {
|
|
t.Fatal("no areaName key")
|
|
}
|
|
if _, ok := oneCity["yn"]; ok {
|
|
t.Fatal("yn field havn't been removed")
|
|
}
|
|
}
|
|
|
|
func TestAccessAPIHavePage(t *testing.T) {
|
|
jdParams := map[string]interface{}{
|
|
"pageNo": 1,
|
|
"pageSize": 20,
|
|
}
|
|
skuInfo, totalCount, err := api.AccessAPIHavePage("pms/querySkuInfos", jdParams, nil, []string{"skuName", "skuId"}, nil)
|
|
if err != nil {
|
|
t.Fatalf("AccessAPIHavePage return error:%v", err)
|
|
}
|
|
|
|
if len(skuInfo) == 0 || totalCount == 0 {
|
|
t.Fatal("sku info is empty")
|
|
}
|
|
oneSku := skuInfo[0].(map[string]interface{})
|
|
if _, ok := oneSku["skuName"]; !ok {
|
|
t.Fatal("no skuName key")
|
|
}
|
|
if _, ok := oneSku["outSkuId"]; ok {
|
|
t.Fatal("outSkuId key not removed")
|
|
}
|
|
}
|
|
|
|
func TestGenerateURL(t *testing.T) {
|
|
params := make(map[string]interface{})
|
|
params["key"] = "v"
|
|
params["key2"] = "v2"
|
|
|
|
fullURL := utils.GenerateGetURL(prodURL, "address/allcities", params)
|
|
|
|
response, err := http.Get(fullURL)
|
|
if err != nil {
|
|
t.Fatalf("Get return error:%v", err)
|
|
}
|
|
defer response.Body.Close()
|
|
}
|
|
|
|
func TestJdMap2StructByJson(t *testing.T) {
|
|
testStr := `
|
|
{
|
|
"stationNo": "11053496",
|
|
"stationName": "京西菜市-三平台测试门店4",
|
|
"outSystemId": "2",
|
|
"mobile": "18109051396",
|
|
"phone": "13684045765",
|
|
"lat": 34.224367,
|
|
"lng": 108.726791,
|
|
"city": 2376,
|
|
"county": 50231,
|
|
"stationAddress": "西安市长安区长安区",
|
|
"serviceTimeEnd1": 47,
|
|
"serviceTimeStart1": 1,
|
|
"closeStatus": 1,
|
|
"allowRangeOptimized": 0,
|
|
"cacheKey4StoreList": "_sn_11053496vi_82029p_2376c_2376co_50231oi_2wt_2sne_京西菜市-三平台测试门店4sa_西安市长安区长安区yn_0pe_2",
|
|
"carrierNo": 9966,
|
|
"cityName": "西安市",
|
|
"coordinate": "108.726791,34.224367",
|
|
"coordinateAddress": "韩南村",
|
|
"countyName": "长安区",
|
|
"createPin": "jd_jxcs8285",
|
|
"createTime": {
|
|
"day": 4,
|
|
"hours": 13,
|
|
"minutes": 33,
|
|
"seconds": 22,
|
|
"time": 1470893602321,
|
|
"timezoneOffset": -480,
|
|
"date": 11,
|
|
"month": 7,
|
|
"year": 116
|
|
},
|
|
"id": 123108,
|
|
"industryTag": 3,
|
|
"innerNoStatus": 1,
|
|
"isAutoOrder": 0,
|
|
"isMembership": 0,
|
|
"isNoPaper": 2,
|
|
"onlineTime": 1470893602123,
|
|
"orderAging": 60,
|
|
"orderNoticeType": 1,
|
|
"preWarehouse": 2,
|
|
"province": 2376,
|
|
"provinceName": "西安市",
|
|
"qualifyStatus": 2,
|
|
"regularFlag": 3,
|
|
"stationDeliveryStatus": 2,
|
|
"supportInvoice": 0,
|
|
"supportOfflinePurchase": 0,
|
|
"testMark": 0,
|
|
"timeAmType": 1,
|
|
"timePmType": 0,
|
|
"ts": {
|
|
"day": 2,
|
|
"hours": 16,
|
|
"minutes": 22,
|
|
"seconds": 13,
|
|
"time": 1571127733000,
|
|
"timezoneOffset": -480,
|
|
"date": 15,
|
|
"month": 9,
|
|
"year": 119
|
|
},
|
|
"updatePin": "jxadmin-zhouyang",
|
|
"updateTime": 1571127733,
|
|
"venderId": "82029",
|
|
"venderName": "测试京西菜市",
|
|
"wareType": 2,
|
|
"whiteDelivery": false,
|
|
"yn": 0
|
|
}
|
|
`
|
|
var rawData interface{}
|
|
err := utils.UnmarshalUseNumber([]byte(testStr), &rawData)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
var store *StoreDetail
|
|
err = JdMap2StructByJson(rawData, &store, true)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
if store.CreateTime.GoTime().Unix() != 1470893602 ||
|
|
store.OnlineTime.GoTime().Unix() != 1470893602 ||
|
|
store.UpdateTime.GoTime().Unix() != 1571127733 {
|
|
t.Fatalf("%d,%d,%d", store.CreateTime.GoTime().Unix(), store.OnlineTime.GoTime().Unix(), store.UpdateTime.GoTime().Unix())
|
|
}
|
|
t.Log(utils.Format4Output(store, false))
|
|
t.Log(store.CreateTime)
|
|
}
|