MCPcopy Create free account
hub / github.com/baerwang/openapi-rs / test_enum_validation_query_parameter

Function test_enum_validation_query_parameter

src/validator/enum_test.rs:9–59  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

7
8 #[test]
9 fn test_enum_validation_query_parameter() {
10 let yaml_content = r#"
11openapi: 3.0.0
12info:
13 title: Test API
14 version: 1.0.0
15paths:
16 /test:
17 get:
18 parameters:
19 - name: status
20 in: query
21 required: true
22 schema:
23 type: string
24 enum: ["active", "inactive", "pending"]
25 - name: priority
26 in: query
27 required: false
28 enum: [1, 2, 3]
29components: {}
30"#;
31
32 let open_api: OpenAPI = serde_yaml::from_str(yaml_content).unwrap();
33
34 let mut valid_query = HashMap::new();
35 valid_query.insert("status".to_string(), "active".to_string());
36 valid_query.insert("priority".to_string(), "2".to_string());
37
38 let result = query("/test", &valid_query, &open_api);
39 if let Err(ref e) = result {
40 println!("Error message: {}", e);
41 }
42 assert!(result.is_ok(), "Valid enum values should pass validation");
43
44 let mut invalid_query = HashMap::new();
45 invalid_query.insert("status".to_string(), "unknown".to_string());
46
47 let result = query("/test", &invalid_query, &open_api);
48 assert!(result.is_err(), "Invalid enum values should be rejected");
49
50 let error_msg = result.unwrap_err().to_string();
51 assert!(
52 error_msg.contains("not in allowed enum values"),
53 "Error message should contain enum validation hint"
54 );
55 assert!(
56 error_msg.contains("active"),
57 "Error message should show allowed enum values"
58 );
59 }
60
61 #[test]
62 fn test_enum_validation_with_different_types() {

Callers

nothing calls this directly

Calls 1

queryFunction · 0.85

Tested by

no test coverage detected