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

Function parse_components_base

tests/tests.rs:96–159  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

94
95 #[test]
96 fn parse_components_base() -> Result<(), Box<dyn std::error::Error>> {
97 let content = r#"
98openapi: 3.1.0
99info:
100 title: Example API
101 description: API definitions for example
102 version: '0.0.1'
103
104components:
105 schemas:
106 ExampleRequest:
107 title: example request
108 description: example description
109 type: object
110 properties:
111 result:
112 type: string
113 description: example
114 example: example
115 required:
116 - result
117paths:
118 "#;
119
120 let openapi: OpenAPI = OpenAPI::yaml(content)?;
121
122 // Validate general properties
123 assert_eq!(openapi.openapi, "3.1.0");
124 assert_eq!(openapi.info.title, "Example API");
125 assert_eq!(
126 openapi.info.description.as_deref(),
127 Some("API definitions for example")
128 );
129 assert_eq!(openapi.info.version, "0.0.1");
130
131 // Validate components and schemas
132 let components = openapi.components.as_ref().unwrap();
133 let example_request = components.schemas.get("ExampleRequest").unwrap();
134
135 assert!(example_request.one_of.is_none());
136 assert!(example_request.all_of.is_none());
137
138 // Validate "ExampleRequest" properties
139 assert_eq!(example_request.title.as_ref().unwrap(), "example request");
140 assert_eq!(
141 example_request.description.as_ref().unwrap(),
142 "example description"
143 );
144 assert!(!example_request.required.is_empty());
145
146 // Validate "result" property in ExampleRequest
147 let result = example_request
148 .properties
149 .as_ref()
150 .unwrap()
151 .get("result")
152 .unwrap();
153 assert_eq!(result.r#type, Some(TypeOrUnion::Single(Type::String)));

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected