automapper_validation/validator/
codes.rs1pub struct ErrorCodes;
11
12impl ErrorCodes {
13 pub const MISSING_MANDATORY_SEGMENT: &'static str = "STR001";
17
18 pub const MAX_REPETITIONS_EXCEEDED: &'static str = "STR002";
20
21 pub const UNEXPECTED_SEGMENT: &'static str = "STR003";
23
24 pub const WRONG_SEGMENT_ORDER: &'static str = "STR004";
26
27 pub const MISSING_MANDATORY_GROUP: &'static str = "STR005";
29
30 pub const GROUP_MAX_REP_EXCEEDED: &'static str = "STR006";
32
33 pub const VALUE_TOO_LONG: &'static str = "FMT001";
37
38 pub const INVALID_NUMERIC_FORMAT: &'static str = "FMT002";
40
41 pub const INVALID_ALPHANUMERIC_FORMAT: &'static str = "FMT003";
43
44 pub const INVALID_DATE_FORMAT: &'static str = "FMT004";
46
47 pub const VALUE_TOO_SHORT: &'static str = "FMT005";
49
50 pub const REQUIRED_ELEMENT_EMPTY: &'static str = "FMT006";
52
53 pub const INVALID_CODE_VALUE: &'static str = "COD001";
57
58 pub const CODE_NOT_ALLOWED_FOR_PID: &'static str = "COD002";
60
61 pub const MISSING_REQUIRED_FIELD: &'static str = "AHB001";
65
66 pub const FIELD_NOT_ALLOWED_FOR_PID: &'static str = "AHB002";
68
69 pub const CONDITIONAL_RULE_VIOLATION: &'static str = "AHB003";
71
72 pub const UNKNOWN_PRUEFIDENTIFIKATOR: &'static str = "AHB004";
74
75 pub const CONDITION_UNKNOWN: &'static str = "AHB005";
77
78 pub const PACKAGE_CARDINALITY_VIOLATION: &'static str = "AHB006";
80}
81
82#[cfg(test)]
83mod tests {
84 use super::*;
85
86 #[test]
87 fn test_error_code_prefixes() {
88 assert!(ErrorCodes::MISSING_MANDATORY_SEGMENT.starts_with("STR"));
89 assert!(ErrorCodes::VALUE_TOO_LONG.starts_with("FMT"));
90 assert!(ErrorCodes::INVALID_CODE_VALUE.starts_with("COD"));
91 assert!(ErrorCodes::MISSING_REQUIRED_FIELD.starts_with("AHB"));
92 }
93
94 #[test]
95 fn test_all_codes_are_unique() {
96 let codes = [
97 ErrorCodes::MISSING_MANDATORY_SEGMENT,
98 ErrorCodes::MAX_REPETITIONS_EXCEEDED,
99 ErrorCodes::UNEXPECTED_SEGMENT,
100 ErrorCodes::WRONG_SEGMENT_ORDER,
101 ErrorCodes::MISSING_MANDATORY_GROUP,
102 ErrorCodes::GROUP_MAX_REP_EXCEEDED,
103 ErrorCodes::VALUE_TOO_LONG,
104 ErrorCodes::INVALID_NUMERIC_FORMAT,
105 ErrorCodes::INVALID_ALPHANUMERIC_FORMAT,
106 ErrorCodes::INVALID_DATE_FORMAT,
107 ErrorCodes::VALUE_TOO_SHORT,
108 ErrorCodes::REQUIRED_ELEMENT_EMPTY,
109 ErrorCodes::INVALID_CODE_VALUE,
110 ErrorCodes::CODE_NOT_ALLOWED_FOR_PID,
111 ErrorCodes::MISSING_REQUIRED_FIELD,
112 ErrorCodes::FIELD_NOT_ALLOWED_FOR_PID,
113 ErrorCodes::CONDITIONAL_RULE_VIOLATION,
114 ErrorCodes::UNKNOWN_PRUEFIDENTIFIKATOR,
115 ErrorCodes::CONDITION_UNKNOWN,
116 ErrorCodes::PACKAGE_CARDINALITY_VIOLATION,
117 ];
118
119 let unique: std::collections::HashSet<&str> = codes.iter().copied().collect();
120 assert_eq!(codes.len(), unique.len(), "Duplicate error codes found");
121 }
122}