package osi import ( "context" "encoding/json" "net/http" "net/http/httptest" "testing" ) func TestQueryGridAddressCallsWGDZ00001(t *testing.T) { var seenPath string var seenPayload map[string]any server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { seenPath = r.URL.Path if err := json.NewDecoder(r.Body).Decode(&seenPayload); err != nil { t.Fatalf("decode request: %v", err) } _, _ = w.Write([]byte(`{"code":"01","message":"操作成功","data":[{"regionCode":"441625000000","regionName":"测试网格","isFamily":"1"}]}`)) })) defer server.Close() client := newTestJKDAClient(t, server.URL) rows, result, err := client.QueryGridAddress(context.Background(), GridAddressQuery{ ParentCode: "441625", PageNo: 1, OperateUser: "712041", }) if err != nil { t.Fatalf("QueryGridAddress: %v", err) } if !result.Success || result.Code != "01" { t.Fatalf("result = %#v", result) } if seenPath != "/osi/api/auto/wgdzcx/query" { t.Fatalf("path = %q", seenPath) } if seenPayload["serviceId"] != ServiceIDGridAddress { t.Fatalf("serviceId = %v", seenPayload["serviceId"]) } baseInfo := seenPayload["uploadinfo"].(map[string]any)["baseInfo"].(map[string]any) if baseInfo["parentCode"] != "441625" || baseInfo["pageNo"] != float64(1) || baseInfo["operateUser"] != "712041" { t.Fatalf("baseInfo = %#v", baseInfo) } if len(rows) != 1 || rows[0].RegionCode != "441625000000" || rows[0].RegionName != "测试网格" || rows[0].IsFamily != "1" { t.Fatalf("rows = %#v", rows) } } func TestQueryDoctorsCallsZRYS00001(t *testing.T) { var seenPath string var seenPayload map[string]any server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { seenPath = r.URL.Path if err := json.NewDecoder(r.Body).Decode(&seenPayload); err != nil { t.Fatalf("decode request: %v", err) } _, _ = w.Write([]byte(`{"code":"01","message":"操作成功","data":[{"personId":"doc-001","personName":"测试医生"}]}`)) })) defer server.Close() client := newTestJKDAClient(t, server.URL) rows, result, err := client.QueryDoctors(context.Background(), DoctorQuery{ ManaUnitID: "441625001", OperateUser: "712041", }) if err != nil { t.Fatalf("QueryDoctors: %v", err) } if !result.Success || result.Code != "01" { t.Fatalf("result = %#v", result) } if seenPath != "/osi/api/auto/zryscx/query" { t.Fatalf("path = %q", seenPath) } if seenPayload["serviceId"] != ServiceIDDoctors { t.Fatalf("serviceId = %v", seenPayload["serviceId"]) } baseInfo := seenPayload["uploadinfo"].(map[string]any)["baseInfo"].(map[string]any) if baseInfo["manaUnitId"] != "441625001" || baseInfo["operateUser"] != "712041" { t.Fatalf("baseInfo = %#v", baseInfo) } if len(rows) != 1 || rows[0].PersonID != "doc-001" || rows[0].PersonName != "测试医生" { t.Fatalf("rows = %#v", rows) } } func TestQueryDrugsCallsYPML00001(t *testing.T) { var seenPath string var seenPayload map[string]any server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { seenPath = r.URL.Path if err := json.NewDecoder(r.Body).Decode(&seenPayload); err != nil { t.Fatalf("decode request: %v", err) } _, _ = w.Write([]byte(`{"code":"01","message":"操作成功","data":[{"ypmc":"测试药品","ypdw":"盒","ypgg":"10mg","jldw":"片"}]}`)) })) defer server.Close() client := newTestJKDAClient(t, server.URL) rows, result, err := client.QueryDrugs(context.Background(), DrugQuery{ PageNo: 1, YPMC: "测试", PYM: "CS", }) if err != nil { t.Fatalf("QueryDrugs: %v", err) } if !result.Success || result.Code != "01" { t.Fatalf("result = %#v", result) } if seenPath != "/osi/api/auto/ypmlcx/query" { t.Fatalf("path = %q", seenPath) } if seenPayload["serviceId"] != ServiceIDDrugs { t.Fatalf("serviceId = %v", seenPayload["serviceId"]) } baseInfo := seenPayload["uploadinfo"].(map[string]any)["baseInfo"].(map[string]any) if baseInfo["pageNo"] != float64(1) || baseInfo["ypmc"] != "测试" || baseInfo["pym"] != "CS" { t.Fatalf("baseInfo = %#v", baseInfo) } if len(rows) != 1 || rows[0].YPMC != "测试药品" || rows[0].YPDW != "盒" || rows[0].YPGG != "10mg" || rows[0].JLDW != "片" { t.Fatalf("rows = %#v", rows) } } func TestQueryOrgsCallsCXJG00002(t *testing.T) { var seenPath string var seenPayload map[string]any server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { seenPath = r.URL.Path if err := json.NewDecoder(r.Body).Decode(&seenPayload); err != nil { t.Fatalf("decode request: %v", err) } _, _ = w.Write([]byte(`{"code":"01","message":"操作成功","data":[{"organizCode":"441625001","organizName":"测试机构","organizType":"1","parentId":"441625"}]}`)) })) defer server.Close() client := newTestJKDAClient(t, server.URL) rows, result, err := client.QueryOrgs(context.Background(), OrgQuery{ OrganizCode: "441625001", ParentID: "441625", }) if err != nil { t.Fatalf("QueryOrgs: %v", err) } if !result.Success || result.Code != "01" { t.Fatalf("result = %#v", result) } if seenPath != "/osi/api/auto/cxjg/query" { t.Fatalf("path = %q", seenPath) } if seenPayload["serviceId"] != ServiceIDOrgs { t.Fatalf("serviceId = %v", seenPayload["serviceId"]) } baseInfo := seenPayload["uploadinfo"].(map[string]any)["baseInfo"].(map[string]any) if baseInfo["organizCode"] != "441625001" || baseInfo["parentId"] != "441625" { t.Fatalf("baseInfo = %#v", baseInfo) } if len(rows) != 1 || rows[0].OrganizCode != "441625001" || rows[0].OrganizName != "测试机构" || rows[0].OrganizType != "1" || rows[0].ParentID != "441625" { t.Fatalf("rows = %#v", rows) } }