Files
baseapi/platformapi/dadaapi/dadaapi_test.go
2018-08-15 22:06:57 +08:00

171 lines
4.6 KiB
Go

package dadaapi
import (
"net/http"
"testing"
"git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/utils"
"go.uber.org/zap"
)
var (
dadaapi *API
sugarLogger *zap.SugaredLogger
testOrder *OperateOrderRequiredParams
)
const (
testShopNo = "11047059"
)
func init() {
logger, _ := zap.NewDevelopment()
sugarLogger = logger.Sugar()
baseapi.Init(sugarLogger)
// sandbox
// dadaapi = New("dada9623324449cd250", "30c2abbfe8a8780ad5aace46300c64b9", "73753", "http://callback.jxc4.com/dada/order", false)
// prod
dadaapi = New("dada147f7a190ce7b3c", "2c717ad914767d6e2beb3f743db9e477", "6660", "http://callback.jxc4.com/dada/order", true)
// prod
testOrder = &OperateOrderRequiredParams{
ShopNo: testShopNo,
OriginID: "234242342",
CityCode: "028",
CargoPrice: 12.34,
IsPrepay: 1,
ReceiverName: "我是谁",
ReceiverAddress: "九里堤",
ReceiverLat: 30.74631,
ReceiverLng: 103.99112,
ReceiverPhone: "12812345678",
}
}
func TestTest(t *testing.T) {
sugarLogger.Debug(utils.GetCurTimeStr())
}
func TestSignCallback(t *testing.T) {
sampleData := `{"signature":"5a277f2519b6011028ff541fb09b8553","client_id":"275000419162381","order_id":"234242342","order_status":1,"cancel_reason":"","cancel_from":0,"dm_id":0,"update_time":1529564947}`
mapData := make(map[string]interface{})
utils.UnmarshalUseNumber([]byte(sampleData), &mapData)
sign := dadaapi.signCallbackParams(mapData)
if sign != mapData["signature"] {
t.Fatal("sign is not correct")
}
}
func TestAccessAPI(t *testing.T) {
body := make(map[string]interface{})
body["order_id"] = "fakeorderid"
result, err := dadaapi.AccessAPI("api/order/status/query", body)
failed := true
if err != nil {
if err2, ok := err.(*utils.ErrorWithCode); ok {
if err2.IntCode() != ResponseCodeSignErr {
failed = false
}
}
} else {
failed = false
}
if failed {
t.Fatalf("Error when accessing api result:%v, error:%v", result, err)
}
}
func TestGetCites(t *testing.T) {
result, err := dadaapi.GetCities()
if err != nil {
t.Fatal(err.Error())
}
failed := true
for _, city := range result {
if city.CityCode == "028" {
failed = false
}
}
if failed {
t.Fatal("failed")
}
}
func TestGetReasons(t *testing.T) {
result, err := dadaapi.GetCancelReasons()
if err != nil {
t.Fatal(err.Error())
}
// baseapi.SugarLogger.Debug(result)
failed := true
for _, reason := range result {
if reason.ID == 1 {
failed = false
}
}
if failed {
t.Fatal("failed")
}
}
func TestAddOrder(t *testing.T) {
result, err := dadaapi.AddOrder(testOrder, nil)
if err != nil {
t.Fatal(err.Error())
}
baseapi.SugarLogger.Debug(result)
}
func TestReaddOrder(t *testing.T) {
result, err := dadaapi.ReaddOrder(testOrder, nil)
if err != nil {
t.Fatal(err.Error())
}
baseapi.SugarLogger.Debug(result)
}
func TestCancelOrder(t *testing.T) {
result, err := dadaapi.CancelOrder("234242342", ReasonIDClientDontWantItAnymore, "")
if err != nil {
t.Fatal(err.Error())
}
baseapi.SugarLogger.Debug(result)
}
func TestCallbackMsgPlayback(t *testing.T) {
baseURL := "http://callback.test.jxc4.com:8080/"
playbackData := [][]string{
[]string{
"{\"signature\":\"2b10053038eef28af360fa2603d59fd1\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":1,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":0,\"update_time\":1530171995}",
baseURL + "dadadelivery/msg",
},
[]string{
"{\"signature\":\"14cb9d55179d47de73e09d3b5e800fea\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":2,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530172054}",
baseURL + "dadadelivery/msg",
},
[]string{
"{\"signature\":\"1058519a18dd8ee8ba6a1638e53bed66\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":3,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173065}",
baseURL + "dadadelivery/msg",
},
[]string{
"{\"signature\":\"9c7a5d72d4e9bdea7b452f38e5c5a0dc\",\"client_id\":\"275159553154971\",\"order_id\":\"815433510000122\",\"order_status\":4,\"cancel_reason\":\"\",\"cancel_from\":0,\"dm_id\":4690995,\"dm_name\":\"王杰\",\"dm_mobile\":\"15982842356\",\"update_time\":1530173559}",
baseURL + "dadadelivery/msg",
},
}
for _, v := range playbackData {
_, err := utils.SendFakeRequest(http.MethodPost, v[1], v[0], "application/json; charset=utf-8")
if err != nil {
t.Fatal(err)
}
}
}