File: multi_rule.rs

package info (click to toggle)
rust-garde 0.22.1-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 940 kB
  • sloc: makefile: 2
file content (63 lines) | stat: -rw-r--r-- 1,979 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
use super::util;

#[derive(Debug, garde::Validate)]
struct Test<'a> {
    #[garde(prefix("test"), ascii, length(min = 10, max = 100))]
    field: &'a str,
    #[garde(inner(prefix("test"), ascii, length(min = 10, max = 100)))]
    inner: &'a [&'a str],
}

#[test]
fn multi_rule_valid() {
    util::check_ok(
        &[
            Test {
                field: "test_test_test",
                inner: &["test_test_test"]
            },
            Test {
                field: "test_some_other_ascii_but_less_than_100_chars",
                inner: &["test_some_other_ascii_but_less_than_100_chars"]
            },
            Test {
                // "test" + 'a' * 6
                field: "testaaaaaa",
                inner: &["testaaaaaa"]
            },
            Test {
                // "test" + 'a' * 96
                field: "testaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                inner: &["testaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
            },
        ],
        &(),
    )
}

#[test]
fn multi_rule_invalid() {
    util::check_fail!(
        &[
            Test {
                field: "text which does not begin with `test`",
                inner: &["text which does not begin with `test`"],
            },
            Test {
                field: "non-ascii 😂😂😂",
                inner: &["non-ascii 😂😂😂"],
            },
            Test {
                // 'a' * 9
                field: "aaaaaaaaa",
                inner: &["aaaaaaaaa"],
            },
            Test {
                // 'a' * 101
                field: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
                inner: &["aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"]
            },
        ],
        &()
    )
}