This commit is contained in:
2026-07-08 21:56:39 +08:00
parent 9f985ea8c7
commit 9c933cd032
5 changed files with 199 additions and 17 deletions

View File

@@ -2,6 +2,8 @@ package dwbg
import (
"encoding/json"
"os"
"path/filepath"
"strings"
"testing"
@@ -327,6 +329,106 @@ func TestBuildJudicialLeaseReportWithCases(t *testing.T) {
}
}
func TestT2SampleJudicialAndSecurityMapping(t *testing.T) {
base := filepath.Join("..", "..", "..", "..", "..", "..", "..", "司南报告")
load := func(name string) map[string]interface{} {
b, err := os.ReadFile(filepath.Join(base, name))
if err != nil {
t.Fatalf("read %s: %v", name, err)
}
var m map[string]interface{}
if err := json.Unmarshal(b, &m); err != nil {
t.Fatalf("unmarshal %s: %v", name, err)
}
return m
}
params := dto.DWBG6A2CReq{
Name: "何志勇",
IDCard: "45212719910201152X",
MobileNo: "18277111590",
}
apiData := map[string]interface{}{
"FLXG7E8F": load("t2-1.json"),
"FLXGDEA9": load("t2-2.json"),
}
report := transformToSinanReport(apiData, params, zap.NewNop())
jlr := report["judicialLeaseReport"].(map[string]interface{})
courtInfo := jlr["courtInfo"].(map[string]interface{})
if courtInfo["criminalCasesCount"] != 4 {
t.Fatalf("criminalCasesCount = %v, want 4", courtInfo["criminalCasesCount"])
}
newMult := courtInfo["newMultCourtInfo"].(map[string]interface{})
criminalCases, ok := newMult["criminalCases"].([]interface{})
if !ok || len(criminalCases) != 4 {
t.Fatalf("criminalCases = %v, want 4 items", newMult["criminalCases"])
}
overview := jlr["caseOverviewInfo"].(map[string]interface{})
if overview["beigaoTotalCasesCounts"] != 2 {
t.Fatalf("beigaoTotalCasesCounts = %v, want 2", overview["beigaoTotalCasesCounts"])
}
if overview["leastCaseTime"] != "2019(2)" {
t.Fatalf("leastCaseTime = %v, want 2019(2)", overview["leastCaseTime"])
}
security := report["securityInfo"].(map[string]interface{})
if security["escape"] != 1 || security["icase"] != 1 {
t.Fatalf("securityInfo A => %+v", security)
}
if security["ikey"] != 1 {
t.Fatalf("securityInfo D5 => ikey=%v", security["ikey"])
}
riskPoint := report["riskPoint"].(map[string]interface{})
if riskPoint["judicialRisk"] != 1 || riskPoint["legalCasesFlag"] != 1 {
t.Fatalf("riskPoint judicial flags = %+v", riskPoint)
}
if riskPoint["securityRisk"] != 1 {
t.Fatalf("securityRisk = %v, want 1", riskPoint["securityRisk"])
}
}
func TestT2SampleWithDataWrapper(t *testing.T) {
base := filepath.Join("..", "..", "..", "..", "..", "..", "..", "司南报告")
load := func(name string) map[string]interface{} {
b, err := os.ReadFile(filepath.Join(base, name))
if err != nil {
t.Fatalf("read %s: %v", name, err)
}
var m map[string]interface{}
if err := json.Unmarshal(b, &m); err != nil {
t.Fatalf("unmarshal %s: %v", name, err)
}
return m
}
params := dto.DWBG6A2CReq{
Name: "何志勇",
IDCard: "45212719910201152X",
MobileNo: "18277111590",
}
apiData := map[string]interface{}{
"FLXG7E8F": map[string]interface{}{"data": load("t2-1.json")},
"FLXGDEA9": map[string]interface{}{"data": load("t2-2.json")},
}
report := transformToSinanReport(apiData, params, zap.NewNop())
jlr := report["judicialLeaseReport"].(map[string]interface{})
courtInfo := jlr["courtInfo"].(map[string]interface{})
if courtInfo["criminalCasesCount"] != 4 {
t.Fatalf("wrapped criminalCasesCount = %v, want 4", courtInfo["criminalCasesCount"])
}
security := report["securityInfo"].(map[string]interface{})
if security["escape"] != 1 || security["ikey"] != 1 {
t.Fatalf("wrapped securityInfo = %+v", security)
}
riskList := report["riskList"].(map[string]interface{})
if riskList["industryBlacklist"] != 1 {
t.Fatalf("wrapped industryBlacklist = %v, want 1", riskList["industryBlacklist"])
}
}
func TestM1PlusCountCaps(t *testing.T) {
apiData := map[string]interface{}{
"JRZQ5E9F": map[string]interface{}{