76 lines
2.7 KiB
Go
76 lines
2.7 KiB
Go
package test
|
|
|
|
import (
|
|
"encoding/json"
|
|
"ips-lacpass-backend/pkg/utils"
|
|
"testing"
|
|
)
|
|
|
|
func TestHCertICVPDecode(t *testing.T) {
|
|
hcert := "HC1:6BFOXN%TSMAHN-HJM80DOO8W%TG34UE726*2OC9Y.TW1ANU9SCE7JM:UC*ELIQ5B264IM:/42JO2 7V35U:7+V4YC5/HQ6EOHCRBK81EPFJM5C9YCBJ%GBVCL+9-0G2PBUDBACARDAEI97KE*LHXQM.FDBIK4LD JM3.K/HLNOI3.KH+G7IKSH9NOIEJK5+K6IASD9YHI1KKK3MYII3IKEIAM0G6JK%86%X49/SQN4:U45ALD-4$XKHBTQ1LTA3$73HRJFRJ9STE-4/-KFU4-EF:57MUBMTF*MCXJL RGBFH*RK%4U7U*+RDQJHY23QPX4MQ2S1$U4ST236MDNW*PGNETTU4DK/$TJ7PS4JLDV%0K1GDMDP $A*EK/JP:T3%.4OYB"
|
|
|
|
expectedJSON := `{
|
|
"-260": {
|
|
"-6": {
|
|
"dob": "1905-08-23",
|
|
"n": "Aulo Agerio",
|
|
"ndt": "NI",
|
|
"nid": "16337361-9",
|
|
"s": "male",
|
|
"v": {
|
|
"bo": "123123123",
|
|
"dt": "2017-12-11",
|
|
"vls": "2017-12-11",
|
|
"vp": "YellowFeverProductd2c75a15ed309658b3968519ddb31690"
|
|
}
|
|
}
|
|
},
|
|
"1": "XCL",
|
|
"6": 1757187943
|
|
}`
|
|
|
|
decoded, err := utils.DecodeHCert(hcert)
|
|
if err != nil {
|
|
t.Fatalf("Failed to decode HCert: %v", err)
|
|
}
|
|
|
|
decodedPretty, err := json.MarshalIndent(decoded, "", " ")
|
|
if err != nil {
|
|
t.Fatalf("Failed to decode JSON: %v", err)
|
|
}
|
|
|
|
if string(expectedJSON) != string(decodedPretty) {
|
|
t.Errorf("Decoded value is not correct. Decoded: %s, Expected: %s", decodedPretty, expectedJSON)
|
|
}
|
|
}
|
|
|
|
func TestHCertVHLDecode(t *testing.T) {
|
|
hcert := "HC1:6BFOXNMG2N9HZBPYHQ3D69SO5D6%9L60JO DJS4L:P:R8LCDO%08JJG.NSOEV 9OG6%6Q4TJ7AJENS:NK7VCECM:MQ0FE%JC5Y479D/*8G.CV3NV3OVLD86J:KE2HF86GX2BTLHA9A86GNY8XOIROBZQMQOB9MEBED:KE87B MH:8DZYK%KNU9O%UL75E2*KH42$T8CRJ.V89:GF-K8JV Y8GJNKY8%97JR8ZV0:JVIP46+8KD35T8/Z8ZIV-YKAUVH40DQL2I6AI8LZP9WHHK5.SMIY9TO6YN6MJE2I6DF5P.P%OE-M6U JGKETW7YP6GUMY.HBNMAP50TBIM5GUMSWPVYB5RH+PEGKE5SG7UT4L5%K82OO-L8+$RTNKCZUN.DSB1971PFU%0F$5MH6QTMUEO1HB5*%L4NH7KEK%56VEUS17%E2F14LETP5 9VZ*MTJR.*U6.CH8795KTD8B836B4X/9+JIQT24GA-+DVE9B2K9FDJ4N172IM2%-2SFL -UNNF0GJG0AG16%$V%*C9:A8+I2QOHUQDVJ7VF +AU61$8IE0U4NOKIS1RE0BBSEWUVKI9K4/TQQP5U974CI9JQI10DEG30QUKL1"
|
|
|
|
expectedJSON := `{
|
|
"-260": {
|
|
"5": [
|
|
{
|
|
"u": "shlink://eyJ1cmwiOiJodHRwOi8vbGFjcGFzcy5jcmVhdGUuY2w6ODE4Mi92Mi9tYW5pZmVzdHMvYjEzYzA0Y2QtMDc1Yy00YjY4LTgyOTQtMzJhZTMwN2YxYjA5IiwiZmxhZyI6IlAiLCJleHAiOjE3NjAxNDAyMjEwMDAsImtleSI6IkxTTnVaTXFHZEo1cmdQLUpJSEoySllLaWtuYzJXZDcwaG1VMFBSZFAwSHM9IiwibGFiZWwiOiJHREhDTiBWYWxpZGF0b3IifQ=="
|
|
}
|
|
]
|
|
},
|
|
"1": "XJ",
|
|
"4": 1760140221,
|
|
"6": 1757271643804
|
|
}`
|
|
|
|
decoded, err := utils.DecodeHCert(hcert)
|
|
if err != nil {
|
|
t.Fatalf("Failed to decode HCert: %v", err)
|
|
}
|
|
|
|
decodedPretty, err := json.MarshalIndent(decoded, "", " ")
|
|
if err != nil {
|
|
t.Fatalf("Failed to decode JSON: %v", err)
|
|
}
|
|
|
|
if string(expectedJSON) != string(decodedPretty) {
|
|
t.Errorf("Decoded value is not correct. Decoded: %s, Expected: %s", decodedPretty, expectedJSON)
|
|
}
|
|
} |