|
- package weapp
-
- import (
- "fmt"
- "io"
- "net/http"
- "net/http/httptest"
- "os"
- "path"
- "testing"
- )
-
- func TestBankCardByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc(apiBankcard, func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiBankcard {
- t.Fatalf("Except to path '%s',get '%s'", apiBankcard, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"type", "access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "id": "622213XXXXXXXXX"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := bankCardByURL(ts.URL+apiBankcard, "mock-access-token", ts.URL+"/mediaurl", RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
-
- _, err = bankCardByURL(ts.URL+apiBankcard, "mock-access-token", ts.URL+"/mediaurl", RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestBankCard(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiBankcard {
- t.Fatalf("Except to path '%s',get '%s'", apiBankcard, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"type", "access_token"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "id": "622213XXXXXXXXX"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := bankCard(ts.URL+apiBankcard, "mock-access-token", testIMGName, RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
- _, err = bankCard(ts.URL+apiBankcard, "mock-access-token", testIMGName, RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestDriverLicenseByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc(apiDrivingLicense, func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiDrivingLicense {
- t.Fatalf("Except to path '%s',get '%s'", apiDrivingLicense, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "id_num": "660601xxxxxxxx1234",
- "name": "张三",
- "sex": "男",
- "nationality": "中国",
- "address": "广东省东莞市xxxxx号",
- "birth_date": "1990-12-21",
- "issue_date": "2012-12-21",
- "car_class": "C1",
- "valid_from": "2018-07-06",
- "valid_to": "2020-07-01",
- "official_seal": "xx市公安局公安交通管理局"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := driverLicenseByURL(ts.URL+apiDrivingLicense, "mock-access-token", ts.URL+"/mediaurl")
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestDriverLicense(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiDrivingLicense {
- t.Fatalf("Except to path '%s',get '%s'", apiDrivingLicense, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- if r.Form.Get("access_token") == "" {
- t.Fatalf("access_token can not be empty")
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "id_num": "660601xxxxxxxx1234",
- "name": "张三",
- "sex": "男",
- "nationality": "中国",
- "address": "广东省东莞市xxxxx号",
- "birth_date": "1990-12-21",
- "issue_date": "2012-12-21",
- "car_class": "C1",
- "valid_from": "2018-07-06",
- "valid_to": "2020-07-01",
- "official_seal": "xx市公安局公安交通管理局"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := driverLicense(ts.URL+apiDrivingLicense, "mock-access-token", testIMGName)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestBusinessLicenseByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc("/cv/ocr/bizlicense", func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- if r.URL.EscapedPath() != "/cv/ocr/bizlicense" {
- t.Error("Invalid request path")
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "reg_num": "123123",
- "serial": "123123",
- "legal_representative": "张三",
- "enterprise_name": "XX饮食店",
- "type_of_organization": "个人经营",
- "address": "XX市XX区XX路XX号",
- "type_of_enterprise": "xxx",
- "business_scope": "中型餐馆(不含凉菜、不含裱花蛋糕,不含生食海产品)。",
- "registered_capital": "200万",
- "paid_in_capital": "200万",
- "valid_period": "2019年1月1日",
- "registered_date": "2018年1月1日",
- "cert_position": {
- "pos": {
- "left_top": {
- "x": 155,
- "y": 191
- },
- "right_top": {
- "x": 725,
- "y": 157
- },
- "right_bottom": {
- "x": 743,
- "y": 512
- },
- "left_bottom": {
- "x": 164,
- "y": 525
- }
- }
- },
- "img_size": {
- "w": 966,
- "h": 728
- }
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := businessLicenseByURL(ts.URL+apiBusinessLicense, "mock-access-token", ts.URL+"/mediaurl")
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestBusinessLicense(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- if r.URL.EscapedPath() != "/cv/ocr/bizlicense" {
- t.Error("Invalid request path")
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- if r.Form.Get("access_token") == "" {
- t.Fatalf("access_token can not be empty")
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "reg_num": "123123",
- "serial": "123123",
- "legal_representative": "张三",
- "enterprise_name": "XX饮食店",
- "type_of_organization": "个人经营",
- "address": "XX市XX区XX路XX号",
- "type_of_enterprise": "xxx",
- "business_scope": "中型餐馆(不含凉菜、不含裱花蛋糕,不含生食海产品)。",
- "registered_capital": "200万",
- "paid_in_capital": "200万",
- "valid_period": "2019年1月1日",
- "registered_date": "2018年1月1日",
- "cert_position": {
- "pos": {
- "left_top": {
- "x": 155,
- "y": 191
- },
- "right_top": {
- "x": 725,
- "y": 157
- },
- "right_bottom": {
- "x": 743,
- "y": 512
- },
- "left_bottom": {
- "x": 164,
- "y": 525
- }
- }
- },
- "img_size": {
- "w": 966,
- "h": 728
- }
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := businessLicense(ts.URL+apiBusinessLicense, "mock-access-token", testIMGName)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestPrintedTextByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc("/cv/ocr/comm", func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- if r.URL.EscapedPath() != "/cv/ocr/comm" {
- t.Error("Invalid request path")
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "items": [
- {
- "text": "腾讯",
- "pos": {
- "left_top": {
- "x": 575,
- "y": 519
- },
- "right_top": {
- "x": 744,
- "y": 519
- },
- "right_bottom": {
- "x": 744,
- "y": 532
- },
- "left_bottom": {
- "x": 573,
- "y": 532
- }
- }
- },
- {
- "text": "微信团队",
- "pos": {
- "left_top": {
- "x": 670,
- "y": 516
- },
- "right_top": {
- "x": 762,
- "y": 517
- },
- "right_bottom": {
- "x": 762,
- "y": 532
- },
- "left_bottom": {
- "x": 670,
- "y": 531
- }
- }
- }
- ],
- "img_size": {
- "w": 1280,
- "h": 720
- }
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := printedTextByURL(ts.URL+apiPrintedText, "mock-access-token", ts.URL+"/mediaurl")
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestPrintedText(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- if r.URL.EscapedPath() != "/cv/ocr/comm" {
- t.Error("Invalid request path")
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- if r.Form.Get("access_token") == "" {
- t.Fatalf("access_token can not be empty")
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "items": [
- {
- "text": "腾讯",
- "pos": {
- "left_top": {
- "x": 575,
- "y": 519
- },
- "right_top": {
- "x": 744,
- "y": 519
- },
- "right_bottom": {
- "x": 744,
- "y": 532
- },
- "left_bottom": {
- "x": 573,
- "y": 532
- }
- }
- },
- {
- "text": "微信团队",
- "pos": {
- "left_top": {
- "x": 670,
- "y": 516
- },
- "right_top": {
- "x": 762,
- "y": 517
- },
- "right_bottom": {
- "x": 762,
- "y": 532
- },
- "left_bottom": {
- "x": 670,
- "y": 531
- }
- }
- }
- ],
- "img_size": {
- "w": 1280,
- "h": 720
- }
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := printedText(ts.URL+apiPrintedText, "mock-access-token", testIMGName)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestIDCardByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc(apiIDCard, func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiIDCard {
- t.Fatalf("Except to path '%s',get '%s'", apiIDCard, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"type", "access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "type": "Front",
- "id": "44XXXXXXXXXXXXXXX1"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := idCardByURL(ts.URL+apiIDCard, "mock-access-token", ts.URL+"/mediaurl", RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
-
- _, err = idCardByURL(ts.URL+apiIDCard, "mock-access-token", ts.URL+"/mediaurl", RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestIDCard(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiIDCard {
- t.Fatalf("Except to path '%s',get '%s'", apiIDCard, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
- queries := []string{"type", "access_token"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "errcode": 0,
- "errmsg": "ok",
- "type": "Front",
- "id": "44XXXXXXXXXXXXXXX1"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := idCard(ts.URL+apiIDCard, "mock-access-token", testIMGName, RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
- _, err = idCard(ts.URL+apiIDCard, "mock-access-token", testIMGName, RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestVehicleLicenseByURL(t *testing.T) {
- server := http.NewServeMux()
- server.HandleFunc(apiVehicleLicense, func(w http.ResponseWriter, r *http.Request) {
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiVehicleLicense {
- t.Fatalf("Except to path '%s',get '%s'", apiVehicleLicense, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
-
- queries := []string{"type", "access_token", "img_url"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "vhicle_type": "小型普通客⻋",
- "owner": "东莞市xxxxx机械厂",
- "addr": "广东省东莞市xxxxx号",
- "use_character": "非营运",
- "model": "江淮牌HFCxxxxxxx",
- "vin": "LJ166xxxxxxxx51",
- "engine_num": "J3xxxxx3",
- "register_date": "2018-07-06",
- "issue_date": "2018-07-01",
- "plate_num_b": "粤xxxxx",
- "record": "441xxxxxx3",
- "passengers_num": "7人",
- "total_quality": "2700kg",
- "prepare_quality": "1995kg"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- })
-
- server.HandleFunc("/mediaurl", func(w http.ResponseWriter, r *http.Request) {
- filename := testIMGName
- file, err := os.Open(filename)
- if err != nil {
- t.Fatal((err))
- }
- defer file.Close()
-
- ext := path.Ext(filename)
- ext = ext[1:len(ext)]
- w.Header().Set("Content-Type", "image/"+ext)
- w.Header().Set("Content-Disposition", fmt.Sprintf("attachment; filename=\"%s\"", path.Base(filename)))
- w.WriteHeader(http.StatusOK)
-
- if _, err := io.Copy(w, file); err != nil {
- t.Fatal(err)
- }
- })
-
- ts := httptest.NewServer(server)
- defer ts.Close()
-
- _, err := vehicleLicenseByURL(ts.URL+apiVehicleLicense, "mock-access-token", ts.URL+"/mediaurl", RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
-
- _, err = vehicleLicenseByURL(ts.URL+apiVehicleLicense, "mock-access-token", ts.URL+"/mediaurl", RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
-
- func TestVehicleLicense(t *testing.T) {
- ts := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
-
- if r.Method != "POST" {
- t.Fatalf("Expect 'POST' get '%s'", r.Method)
- }
-
- path := r.URL.EscapedPath()
- if path != apiVehicleLicense {
- t.Fatalf("Except to path '%s',get '%s'", apiVehicleLicense, path)
- }
-
- if err := r.ParseForm(); err != nil {
- t.Fatal(err)
- }
- queries := []string{"type", "access_token"}
- for _, v := range queries {
- content := r.Form.Get(v)
- if content == "" {
- t.Fatalf("Params [%s] can not be empty", v)
- }
- }
-
- if _, _, err := r.FormFile("img"); err != nil {
- t.Fatal(err)
-
- }
- w.WriteHeader(http.StatusOK)
- w.Header().Set("Content-Type", "application/json")
- raw := `{
- "vhicle_type": "小型普通客⻋",
- "owner": "东莞市xxxxx机械厂",
- "addr": "广东省东莞市xxxxx号",
- "use_character": "非营运",
- "model": "江淮牌HFCxxxxxxx",
- "vin": "LJ166xxxxxxxx51",
- "engine_num": "J3xxxxx3",
- "register_date": "2018-07-06",
- "issue_date": "2018-07-01",
- "plate_num_b": "粤xxxxx",
- "record": "441xxxxxx3",
- "passengers_num": "7人",
- "total_quality": "2700kg",
- "prepare_quality": "1995kg"
- }`
- if _, err := w.Write([]byte(raw)); err != nil {
- t.Fatal(err)
- }
- }))
- defer ts.Close()
-
- _, err := vehicleLicense(ts.URL+apiVehicleLicense, "mock-access-token", testIMGName, RecognizeModePhoto)
- if err != nil {
- t.Fatal(err)
- }
- _, err = vehicleLicense(ts.URL+apiVehicleLicense, "mock-access-token", testIMGName, RecognizeModeScan)
- if err != nil {
- t.Fatal(err)
- }
- }
|