11#![ cfg( feature = "serde" ) ]
22
3+ use cfg_if:: cfg_if;
34use fortifier:: {
45 EmailAddressError , LengthError , LengthErrorCode , RegexError , UrlError , ValidationErrors ,
56} ;
@@ -18,66 +19,74 @@ enum TestError {
1819}
1920
2021fn setup ( ) -> ( ValidationErrors < TestError > , Value ) {
21- (
22- ValidationErrors :: from_iter ( [
23- TestError :: EmailAddress ( EmailAddressError :: from (
24- email_address:: Error :: MissingSeparator ,
25- ) ) ,
26- TestError :: Length ( LengthError :: Equal {
27- equal : 1 ,
28- value : 2 ,
29- code : LengthErrorCode ,
30- #[ cfg( feature = "message" ) ]
31- message : "length 2 is not equal to required length 1" . to_owned ( ) ,
32- } ) ,
33- TestError :: Regex ( RegexError :: default ( ) ) ,
34- TestError :: Url ( UrlError :: from ( ParseError :: EmptyHost ) ) ,
35- ] ) ,
36- #[ cfg ( not ( feature = "message" ) ) ]
37- json ! ( [
38- {
39- "code" : "emailAddress" ,
40- "subcode" : "missingSeparator" ,
41- } ,
42- {
43- "code" : "length" ,
44- "subcode" : "equal" ,
45- "equal" : 1 ,
46- "value" : 2 ,
47- } ,
48- {
49- "code" : "regex" ,
50- } ,
51- {
52- "code" : "url" ,
53- "subcode" : "emptyHost" ,
54- }
55- ] ) ,
56- #[ cfg ( feature = "message" ) ]
57- json ! ( [
58- {
59- "code" : "emailAddress" ,
60- "subcode" : "missingSeparator" ,
61- "message" : "" ,
62- } ,
63- {
64- "code" : "length" ,
65- "subcode" : "equal" ,
66- "equal" : 1 ,
67- "value" : 2 ,
68- "message" : "length 2 is not equal to required length 1" ,
69- } ,
70- {
71- "code" : "regex" ,
72- "message" : "value does not match regular expression" ,
73- } ,
74- {
75- "code" : "url" ,
76- "subcode" : "emptyHost" ,
77- "message" : "empty host" ,
78- }
79- ] ) ,
80- )
22+ let errors = ValidationErrors :: from_iter ( [
23+ TestError :: EmailAddress ( EmailAddressError :: from (
24+ email_address:: Error :: MissingSeparator ,
25+ ) ) ,
26+ TestError :: Length ( LengthError :: Equal {
27+ equal : 1 ,
28+ value : 2 ,
29+ code : LengthErrorCode ,
30+ #[ cfg( feature = "message" ) ]
31+ message : "length 2 is not equal to required length 1" . to_owned ( ) ,
32+ } ) ,
33+ TestError :: Regex ( RegexError :: default ( ) ) ,
34+ TestError :: Url ( UrlError :: from ( ParseError :: EmptyHost ) ) ,
35+ ] ) ;
36+
37+ cfg_if ! {
38+ if #[ cfg( feature = "message" ) ] {
39+ (
40+ errors,
41+ json!( [
42+ {
43+ "code" : "emailAddress" ,
44+ "subcode" : "missingSeparator" ,
45+ "message" : "" ,
46+ } ,
47+ {
48+ "code" : "length" ,
49+ "subcode" : "equal" ,
50+ "equal" : 1 ,
51+ "value" : 2 ,
52+ "message" : "length 2 is not equal to required length 1" ,
53+ } ,
54+ {
55+ "code" : "regex" ,
56+ "message" : "value does not match regular expression" ,
57+ } ,
58+ {
59+ "code" : "url" ,
60+ "subcode" : "emptyHost" ,
61+ "message" : "empty host" ,
62+ }
63+ ] ) ,
64+ )
65+ } else {
66+ (
67+ errors,
68+ json!( [
69+ {
70+ "code" : "emailAddress" ,
71+ "subcode" : "missingSeparator" ,
72+ } ,
73+ {
74+ "code" : "length" ,
75+ "subcode" : "equal" ,
76+ "equal" : 1 ,
77+ "value" : 2 ,
78+ } ,
79+ {
80+ "code" : "regex" ,
81+ } ,
82+ {
83+ "code" : "url" ,
84+ "subcode" : "emptyHost" ,
85+ }
86+ ] ) ,
87+ )
88+ }
89+ }
8190}
8291
8392#[ test]
0 commit comments