use wx_rust_common::error::wx_open_error_msg_enum::find_msg_by_code;
const ALL_CODES: &[i32] = &[
-1, 0, 1003, 20002, 40001, 40002, 40003, 40004, 40005, 40006, 40007, 40008, 40009, 40010,
40011, 40012, 40013, 40014, 40015, 40016, 40017, 40018, 40019, 40020, 40021, 40022, 40023,
40024, 40025, 40026, 40027, 40028, 40029, 40030, 40031, 40032, 40033, 40034, 40035, 40036,
40037, 40038, 40039, 40040, 40041, 40042, 40043, 40044, 40045, 40046, 40047, 40048, 40049,
40050, 40051, 40052, 40053, 40054, 40055, 40056, 40057, 40058, 40059, 40060, 40062, 40063,
40064, 40065, 40066, 40067, 40068, 40069, 40070, 40071, 40072, 40073, 40074, 40075, 40076,
40077, 40078, 40079, 40080, 40081, 40082, 40083, 40084, 40085, 40086, 40087, 40088, 40089,
40090, 40091, 40092, 40093, 40094, 40095, 40096, 40097, 40098, 40099, 40100, 40101, 40102,
40103, 40104, 40105, 40106, 40107, 40108, 40109, 40110, 40111, 40112, 40113, 40114, 40115,
40116, 40117, 40118, 40119, 40120, 40121, 40122, 40123, 40124, 40125, 40126, 40127, 40128,
40129, 40130, 40131, 40132, 40133, 40135, 40136, 40137, 40138, 40139, 40140, 40141, 40142,
40143, 40144, 40145, 40146, 40147, 40148, 40149, 40150, 40151, 40152, 40153, 40154, 40155,
40156, 40157, 40158, 40159, 40160, 40161, 40162, 40163, 40164, 40165, 40166, 40167, 40168,
40169, 40170, 40171, 40172, 40173, 40174, 40175, 40176, 40177, 40178, 40179, 40180, 40181,
40182, 40183, 40184, 40185, 40186, 40187, 40188, 40189, 40190, 40191, 40192, 40193, 40194,
40195, 40196, 40197, 40198, 40199, 40200, 40201, 40202, 40203, 40204, 40205, 40206, 40207,
40208, 40209, 40210, 40211, 40212, 40213, 40214, 40215, 40216, 40217, 40218, 40219, 40220,
40221, 40222, 40229, 41001, 41002, 41003, 41004, 41005, 41006, 41007, 41008, 41009, 41010,
41011, 41012, 41013, 41014, 41015, 41016, 41017, 41018, 41019, 41020, 41021, 41024, 41025,
41026, 41027, 41028, 41029, 41030, 41031, 41032, 41033, 41034, 41035, 41036, 41037, 41038,
42001, 42002, 42003, 42004, 42005, 42006, 42007, 42008, 42009, 43001, 43002, 43003, 43004,
43005, 43006, 43007, 43008, 43009, 43010, 43011, 43012, 43013, 43014, 43015, 43016, 43017,
43018, 43019, 43100, 43101, 43102, 43103, 43104, 43105, 43106, 44001, 44002, 44003, 44004,
44005, 44006, 44007, 44997, 44998, 44999, 45000, 45001, 45002, 45003, 45004, 45005, 45006,
45007, 45008, 45009, 45010, 45011, 45012, 45013, 45014, 45015, 45016, 45017, 45018, 45019,
45020, 45021, 45022, 45023, 45024, 45025, 45026, 45027, 45028, 45029, 45030, 45031, 45032,
45033, 45034, 45035, 45036, 45037, 45038, 45039, 45040, 45041, 45042, 45043, 45044, 45045,
45046, 45047, 45048, 45049, 45050, 45051, 45052, 45053, 45054, 45055, 45056, 45057, 45058,
45059, 45060, 45061, 45062, 45063, 45064, 45065, 45066, 45067, 45068, 45069, 45070, 45071,
45072, 45073, 45074, 45075, 45076, 45077, 45078, 45079, 45080, 45081, 45082, 45083, 45084,
45085, 45086, 45087, 45088, 45089, 45090, 45091, 45092, 45093, 45094, 45095, 45096, 45097,
45098, 45099, 45100, 45101, 45102, 45103, 45104, 45154, 45155, 45156, 45157, 45158, 45159,
45160, 45161, 45162, 45163, 45164, 45165, 45166, 45167, 45168, 45501, 46001, 46002, 46003,
46004, 46005, 46006, 46007, 46008, 46009, 46101, 47001, 47002, 47003, 47004, 47005, 47006,
47101, 47102, 47501, 47502, 47503, 47504, 48001, 48002, 48003, 48004, 48005, 48006, 48007,
48008, 48009, 48010, 48011, 48012, 48013, 48014, 48015, 48016, 49001, 49002, 49003, 49004,
49005, 49006, 49007, 49008, 49009, 49010, 49300, 49301, 49302, 50001, 50002, 50003, 50004,
50005, 50006, 51000, 51001, 51002, 51003, 51004, 51005, 51006, 51007, 51008, 51009, 51010,
51011, 51012, 51013, 51014, 51015, 51020, 51021, 51022, 51023, 51024, 51025, 51026, 51027,
51028, 51029, 51030, 51031, 51032, 51033, 51034, 51035, 52000, 52001, 52002, 52003, 52004,
52005, 52006, 52007, 52008, 52009, 52010, 52011, 52012, 52013, 52014, 52015, 52016, 52017,
52018, 52019, 53000, 53001, 53002, 53003, 53010, 53011, 53012, 53013, 53014, 53015, 53016,
53017, 53018, 53019, 53100, 53101, 53102, 53103, 53200, 53201, 53202, 53203, 53204, 53300,
53301, 53302, 53303, 53304, 53305, 53306, 53307, 53308, 53309, 53310, 53311, 60005, 60006,
61000, 61001, 61002, 61003, 61004, 61005, 61006, 61007, 61008, 61009, 61010, 61011, 61012,
61013, 61014, 61015, 61016, 61017, 61018, 61019, 61020, 61021, 61022, 61023, 61024, 61025,
61026, 61027, 61028, 61029, 61030, 61051, 61052, 61053, 61054, 61055, 61056, 61058, 61061,
61063, 61064, 61065, 61066, 61067, 61068, 61069, 61070, 61100, 61101, 61102, 61200, 61300,
61301, 61302, 61303, 61304, 61305, 61306, 61307, 61308, 61309, 61310, 61311, 61312, 61313,
61314, 61315, 61316, 61317, 61318, 61319, 61320, 61321, 61322, 61323, 61324, 61325, 61326,
61327, 61328, 61329, 61330, 61331, 61332, 61333, 61334, 61335, 61336, 61337, 61338, 61339,
61340, 61341, 61342, 61343, 61344, 61345, 61346, 61347, 61348, 61350, 61351, 61400, 61401,
61450, 61451, 61452, 61453, 61454, 61455, 61456, 61457, 61500, 61501, 61502, 61503, 62001,
62002, 62003, 62004, 62005, 63001, 63002, 63003, 63004, 63149, 63152, 63153, 63154, 63155,
63156, 63157, 63158, 63159, 63160, 63161, 63162, 63163, 63164, 63165, 63166, 63167, 63168,
63169, 63170, 63171, 63172, 63173, 63174, 63175, 63176, 63177, 63178, 63179, 63180, 63181,
63182, 65001, 65002, 65003, 65004, 65104, 65105, 65106, 65107, 65109, 65110, 65111, 65112,
65113, 65114, 65115, 65116, 65117, 65118, 65119, 65120, 65201, 65202, 65203, 65204, 65205,
65301, 65302, 65303, 65304, 65305, 65306, 65307, 65308, 65309, 65310, 65311, 65312, 65313,
65314, 65315, 65316, 65317, 65318, 65319, 65400, 65401, 65402, 65403, 65404, 65405, 65406,
65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416, 65417, 65450, 68002,
68003, 68004, 68005, 68006, 68007, 68008, 68009, 68010, 68011, 68012, 68013, 68014, 68015,
68016, 68017, 68018, 68019, 68020, 68021, 68022, 68023, 68024, 68025, 68026, 68027, 68028,
68029, 68030, 68031, 68032, 68033, 68034, 68035, 68036, 68037, 68038, 68039, 68040, 68041,
68042, 68043, 68044, 68045, 68046, 68500, 68501, 71001, 71002, 71003, 71004, 71005, 71006,
71007, 71008, 72001, 72002, 72003, 72004, 72005, 72006, 72007, 72008, 72009, 72010, 72011,
72012, 72013, 72014, 72015, 72016, 72017, 72018, 72019, 72020, 72021, 72022, 72023, 72024,
72025, 72026, 72027, 72028, 72029, 72030, 72031, 72032, 72033, 72034, 72035, 72036, 72037,
72038, 72039, 72040, 72041, 72042, 72043, 72044, 72045, 72046, 72047, 72048, 72049, 72050,
72051, 72052, 72053, 72054, 72055, 72056, 72057, 72058, 72059, 72060, 72061, 72062, 72063,
72064, 72065, 72066, 72067, 72068, 72069, 72070, 72071, 72072, 72073, 72074, 72075, 72076,
72077, 72078, 72079, 72080, 72081, 72082, 72083, 72084, 72085, 72086, 72087, 72088, 72089,
72090, 72091, 72092, 72093, 73000, 73001, 73002, 73003, 73004, 73005, 73006, 73007, 73008,
73009, 73010, 73011, 73012, 73013, 73014, 73015, 73016, 73100, 73101, 73103, 73104, 73105,
73106, 73107, 73108, 73109, 73200, 73201, 73202, 73203, 73204, 73205, 73206, 73207, 73208,
73209, 73210, 73211, 73212, 73213, 73214, 73215, 73216, 73217, 73218, 74000, 74001, 74002,
74003, 74004, 74005, 74007, 74008, 74009, 74010, 74011, 74021, 74022, 74023, 74040, 74041,
75001, 75002, 75003, 75004, 75005, 75006, 75007, 75008, 75009, 75010, 75011, 75012, 75013,
75014, 75015, 75016, 75017, 75018, 75019, 80000, 80001, 80002, 80003, 80004, 80005, 80006,
80007, 80008, 80009, 80010, 80011, 80012, 80013, 80014, 80066, 80067, 80082, 80101, 80111,
80112, 80113, 80201, 80202, 80300, 80301, 80302, 80303, 80304, 80305, 80306, 80307, 80308,
80309, 80310, 80311, 80312, 80313, 81000, 81001, 81002, 81004, 81005, 81006, 81007, 81008,
81009, 81010, 81011, 81012, 81013, 81014, 81015, 81016, 81017, 81018, 81019, 81020, 81021,
81022, 81023, 81024, 81025, 81026, 81027, 81028, 81029, 81030, 81031, 82000, 82001, 82002,
82003, 82010, 82011, 82020, 82021, 82022, 82023, 82024, 82025, 82026, 82027, 82100, 82101,
82102, 82103, 82200, 82201, 82202, 82203, 82204, 82205, 82206, 82207, 82208, 82300, 82301,
82302, 82303, 82304, 83000, 83001, 83002, 83003, 83004, 83005, 83006, 83007, 83008, 83009,
83200, 83201, 83202, 83203, 83204, 83205, 83206, 83207, 83208, 83209, 84001, 84002, 84003,
84004, 84005, 84006, 85001, 85002, 85003, 85004, 85005, 85006, 85007, 85008, 85009, 85010,
85011, 85012, 85013, 85014, 85015, 85016, 85017, 85018, 85019, 85020, 85021, 85022, 85023,
85024, 85025, 85026, 85027, 85028, 85029, 85030, 85031, 85032, 85033, 85034, 85035, 85036,
85038, 85039, 85040, 85041, 85042, 85043, 85044, 85045, 85046, 85047, 85048, 85049, 85050,
85051, 85052, 85053, 85054, 85055, 85056, 85057, 85058, 85059, 85060, 85061, 85062, 85063,
85064, 85065, 85066, 85067, 85068, 85069, 85070, 85071, 85072, 85073, 85074, 85075, 85077,
85078, 85079, 85080, 85081, 85082, 85083, 85084, 85085, 85086, 85087, 85088, 85089, 85090,
85091, 85092, 85093, 85094, 85101, 85102, 86000, 86001, 86002, 86003, 86004, 86005, 86006,
86007, 86008, 86009, 86010, 87006, 87007, 87008, 87009, 87010, 87011, 87012, 87013, 87014,
87015, 87016, 87017, 87018, 87019, 87080, 87081, 87082, 87083, 87084, 87085, 88000, 88001,
88002, 88003, 88004, 88005, 88007, 88008, 88009, 88010, 88011, 89000, 89001, 89002, 89003,
89004, 89005, 89006, 89007, 89008, 89009, 89010, 89011, 89012, 89013, 89014, 89015, 89016,
89017, 89018, 89019, 89020, 89021, 89022, 89029, 89030, 89031, 89032, 89033, 89034, 89035,
89231, 89235, 89236, 89237, 89238, 89239, 89240, 89241, 89242, 89243, 89244, 89245, 89246,
89247, 89248, 89249, 89250, 89251, 89253, 89254, 89255, 89256, 89257, 89258, 89259, 89300,
89401, 89402, 89403, 89404, 89405, 89501, 89502, 89503, 89504, 89505, 89506, 89507, 90001,
90002, 90003, 90004, 90005, 90006, 90007, 90009, 90010, 90011, 90012, 90013, 90014, 90015,
90016, 90017, 90018, 91001, 91002, 91003, 91004, 91005, 91006, 91007, 91008, 91009, 91010,
91011, 91012, 91013, 91014, 91015, 91016, 91017, 91018, 91019, 92000, 92002, 92003, 92004,
92005, 92006, 92007, 92008, 93009, 93010, 93011, 93012, 93013, 93014, 93015, 93016, 93017,
93018, 93019, 93020, 93021, 93022, 93023, 93024, 93025, 94001, 94002, 94003, 94004, 94005,
94006, 94007, 94008, 94009, 94010, 94011, 94012, 95001, 95002, 95101, 95102, 95103, 95104,
95105, 95106, 101000, 101001, 101002, 200002, 200011, 200012, 200013, 200014, 200016, 200017,
200018, 200019, 200020, 200021, 300001, 300002, 300003, 300004, 300005, 300006, 300007, 300008,
300009, 300010, 300011, 300012, 300013, 300014, 300017, 300021, 300022, 300023, 300024, 300025,
300026, 300027, 300028, 300029, 300030, 300031, 300032, 300033, 300034, 300035, 300036, 600001,
600002, 600003, 928000, 928001, 930555, 930556, 930557, 930558, 930559, 930560, 930561, 930562,
930563, 930564, 930565, 930566, 930567, 930568, 930569, 930570, 930571, 931010, 6000100,
6000101, 6000102, 9001001, 9001002, 9001003, 9001004, 9001005, 9001006, 9001007, 9001008,
9001009, 9001010, 9001020, 9001021, 9001022, 9001023, 9001024, 9001025, 9001026, 9001027,
9001028, 9001029, 9001030, 9001031, 9001032, 9001033, 9001034, 9001035, 9001036, 9002008,
9002009, 9002010, 9002011, 9002012, 9002013, 9002016, 9002017, 9002026, 9002041, 9002044,
9002052, 9007003, 9007004, 9007005, 9008001, 9008002, 9008003, 9008004, 9200001, 9200002,
9200003, 9200211, 9200231, 9200232, 9200233, 9200235, 9200236, 9200295, 9200297, 9200298,
9200299, 9200300, 9201000, 9201001, 9201002, 9201003, 9201004, 9201005, 9201006, 9201007,
9201008, 9201009, 9201010, 9201011, 9201012, 9201013, 9201014, 9201015, 9201016, 9201017,
9201018, 9201019, 9201020, 9201021, 9201022, 9201023, 9201024, 9201026, 9201027, 9201029,
9201031, 9201032, 9201033, 9201034, 9201035, 9202000, 9202001, 9202002, 9202003, 9202004,
9202005, 9202006, 9202010, 9202011, 9202012, 9202013, 9202016, 9202017, 9202018, 9202020,
9202021, 9203000, 9203001, 9203002, 9203003, 9203004, 9203999, 9204000, 9204001, 9204002,
9205000, 9205001, 9205002, 9205010, 9205101, 9205201, 9206000, 9206001, 9206002, 9206003,
9206200, 9206201, 9206900, 9206901, 9206910, 9206911, 9207000, 9207001, 9207002, 9207003,
9207004, 9207005, 9207006, 9207007, 9207008, 9207009, 9207010, 9207011, 9207012, 9207013,
9207028, 9207029, 9207030, 9207031, 9207032, 9207033, 9207034, 9207050, 9210000, 9291000,
9291001, 9291002, 9291003, 9291004, 9291005, 9291006, 9299999, 9300001, 9300002, 9300003,
9300004, 9300005, 9300006, 9300007, 9300008, 9300009, 9300010, 9300011, 9300012, 9300013,
9300014, 9300015, 9300016, 9300017, 9300018, 9300019, 9300020, 9300021, 9300022, 9300023,
9300024, 9300501, 9300502, 9300503, 9300504, 9300505, 9300506, 9300507, 9300508, 9300509,
9300510, 9300511, 9300512, 9300513, 9300514, 9300515, 9300516, 9300517, 9300520, 9300521,
9300522, 9300523, 9300524, 9300525, 9300526, 9300527, 9300528, 9300529, 9300530, 9300531,
9300532, 9300533, 9300534, 9300535, 9300536, 9300537, 9300538, 9300539, 9300540, 9300541,
9300601, 9300602, 9300603, 9300604, 9300605, 9300606, 9300607, 9300608, 9300609, 9300610,
9300611, 9300701, 9300702, 9300703, 9300704, 9300705, 9300706, 9300707, 9300708, 9300801,
9300802, 9300803, 9300804, 9300805, 9300806, 9300807, 9300808, 9300809, 9300810, 9300811,
9300812, 9300813, 9300814, 9300815, 9300816, 9300817, 9300818, 9300819, 9300820, 9300821,
9300822, 9300823, 9300824, 9300825, 9300826, 9301001, 9301002, 9301003, 9301004, 9301006,
9301007, 9301008, 9301009, 9301010, 9301011, 9301012, 9400001, 9401001, 9401002, 9401003,
9401004, 9401005, 9401006, 9401007, 9401008, 9401020, 9401021, 9401022, 9401023, 9401024,
9401025, 9402001, 9402002, 9402003, 9402004, 9402005, 9402006, 9402007, 9402008, 9402009,
9402010, 9402011, 9402012, 9402013, 9402014, 9402015, 9402016, 9402101, 9402102, 9402202,
9402301, 9403000, 9403001, 9403002, 9403003, 9403004, 9410000, 9410001, 9410002, 9410003,
];
#[test]
fn test_all_codes_have_non_empty_msg() {
assert_eq!(ALL_CODES.len(), 1832);
for &code in ALL_CODES {
let msg = find_msg_by_code(code)
.unwrap_or_else(|| panic!("错误码 {code} 应被收录,实际返回 None"));
assert!(!msg.is_empty(), "错误码 {code} 的翻译信息不应为空字符串");
}
}
#[test]
fn test_unknown_code_returns_none() {
assert_eq!(find_msg_by_code(999_999), None);
assert_eq!(find_msg_by_code(0x7FFF_FFFF), None);
assert_eq!(find_msg_by_code(-2), None);
assert_eq!(find_msg_by_code(i32::MIN), None);
assert_eq!(find_msg_by_code(i32::MAX), None);
}
#[test]
fn test_known_golden_values() {
assert_eq!(find_msg_by_code(-1), Some("系统繁忙,此时请开发者稍候再试"));
assert_eq!(find_msg_by_code(0), Some("请求成功"));
assert_eq!(
find_msg_by_code(40001),
Some(
"获取 access_token 时 AppSecret 错误,或者 access_token 无效。请开发者认真比对 AppSecret 的正确性,或查看是否正在为恰当的公众号调用接口",
)
);
assert_eq!(find_msg_by_code(40013), Some("不合法的appid"));
assert_eq!(find_msg_by_code(41002), Some("缺少 appid 参数"));
assert_eq!(
find_msg_by_code(42001),
Some(
"access_token 超时,请检查 access_token 的有效期,请参考基础支持 - 获取 access_token 中,对 access_token 的详细机制说明",
)
);
assert_eq!(find_msg_by_code(43004), Some("需要接收者关注"));
assert_eq!(
find_msg_by_code(43101),
Some("用户拒绝接受消息,如果用户之前曾经订阅过,则表示用户取消了订阅关系")
);
assert_eq!(find_msg_by_code(61003), Some("帐号未授权"));
assert_eq!(
find_msg_by_code(61004),
Some(
"api 功能未授权,请确认公众号/小程序已获得该接口,可以在公众平台官网 - 开发者中心页中查看接口权限",
)
);
}