Files
baseapi/platformapi/jdapi/jdapi_test.go
邹宗楠 30e9da9e33 123
2021-12-01 15:31:17 +08:00

206 lines
7.3 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("ff428cd2-a900-492e-a34e-5f86112fdb55", "21b627c23ea04c69b64b48d0b361213e", "51cd27a748e64c829b4b7f83f4844610")
// 天天果园
//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 = "OPJQMA7B3FTKCAUGO7FHCH5NMBGAWGGXYRNLEHYYZNGNPNIBCAM4IOEPG3NT3RIA44G5C3535Q5LGG4F4SR4AZVLGYKYTKFJJKEAOXENVBL5VXNILRP3GLNVVWA26XZ3VGSYOHA72RICMVZS3G53DTEH3JWVXCZBKYQN5CW57OZAUUGW26BM5GBMDUKCPJGLYBMEIVPIGG6PY2HOZTQL5PWKCSDJLG7AKSLKUQ422BVJDNQ36DIA74FV7RFQMMQPNJ5YQMCG2M72IH43LZDVSAYZWKUGAVD7VFRMEYTOXYHWCYVDXJ6HYFIPWIN3ULLXDDLN2ICON4GRK"
//api.SetJdCookie(cookieValue)
//api.SetCookie("user", "VCQUVHVJI4ELNGFZOYMCDYDUSHEJMPXZRZXSNBRB4MVBNENP72REAAZR3R4SGDJ5ZI4FLYLLN5EGBBMTFCWHZVESIWBNLKZPLHWD6UIBTPXOF5IXM6AVA3V6TUNZD5UJS43AROJ2IRPZWEN5AGZYBUEGD2EWFHHT3AOYXZYY4Q2OLWFTVITE5NEOXZXC5NSQWCV6NZG4LREQ6W2UVRSYWKL4Y6X7FXYIKJXSBSCOJ5OVVBPYJL4VDJUHW3P6D73BS6HG6MBXGIW576I6LGDTS6QISBWMZ4QZKVKOUHWBVIEMWKUWC6B6WPMKTCCKNRJ5MDOXFCWFFRK3ET3YXVE3ATQCURQ67HGQGUZFPZ46FQDYCONJQX6ZPVAQSQPDVL3HDBIIYIYDMWKFWXVFNA7BVVYJ34ADKDSEDLEEF5B2PIQZFLSUSODQ")
api.SetCookieWithStr(`
__jdu=16193999982702078345144; shshshfpa=972f47df-9252-dc1a-1d6d-40594ce0501b-1619400562; webp=1; visitkey=44137284214309276; shshshfp=4d574741223da61a369c18ce2febefe8; shshshfpb=msX4%202n384blCOGusOxGDvQ%3D%3D; __jdv=56585130|direct|-|none|-|1627614638176; 3AB9D23F7A4B3C9B=CKENC5MAUU744ZQDKVRY2L7UIJ23PJRDYJ6HF3ZMQHC5FFD46FMUQXRINFCOC4SKHL5MU3PPNPP4C4AX5ZYBXJ7LZ4; TrackID=1femwSKOdp1ZzCAkdhpWTj9ATGHidr0CVcCithI7AEGRK1cZPjUr9LVSxehF9p_sHd3C4-XX0yG8ADNSGO2mrSqzK8N-Mp-qvsZJtJ_Gs0fM; pinId=WMIzMhF5BfL6nJp9AcA2-A; pin=shop_jxcs; unick=shop_jxcs; _tp=7FBEvLyPe%2FKcgxsfY5lRgA%3D%3D; _pst=shop_jxcs; __jda=178324346.16193999982702078345144.1619399998.1626742886.1626836024.21; _base_=YKH2KDFHMOZBLCUV7NSRBWQUJPBI7JIMU5R3EFJ5UDHJ5LCU7R2NILKK5UJ6GLA2RGYT464UKXAI4Z6HPCTN4UQM3WHVQ4ENFP57OC2DC7JQLRXRUO5PW6B77O6UXAZ4TCNE6YVKRXISVLBYGYO44RCDDPWDA4AEL7ZLXI2SG4SOQWCP5WP7WCU6EEVB3X4MRGYT464UKXAI4Z6HPCTN4UQM3WHVQ4ENFP57OC5EOOW2LAU4UK4CTFKSSDIO3UTAUWFCLQ6J2UOK5QDCUPF4QE5PIIEQQIBQB5VLHO5UXUJUYNHMOKTCP5MGOZZAC3LW2CWZF5OZUQIZ4RZVRVUDUOCEN6UHBMHZMUVYLLKQCM45KR2VB7VA3RQRJOWOI2FUJVU7I4DYZIJ35BUTKY3K2VH7MZR5DMCBEYTQUHFGRGW75NOZOSGTQZOBM5RVPNAFQV7IXSO76UYYS7SY3JBEJEMZQXYFXJUFHDXEA6T5YIR72JPV7525MAECFVW4WWAJLCDEZPUVQBIEGRJVND46GK4SWI; jdO2OOpenPortalSessionId=5A221F433BF9714293622C77194B5145.s1; token=3e96a739074e44d6988d97e5bfa92238; JSESSIONID=21DEFFB68096367157F4A95F70A80688.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)
}