()
| 94 | |
| 95 | #[test] |
| 96 | fn parse_components_base() -> Result<(), Box<dyn std::error::Error>> { |
| 97 | let content = r#" |
| 98 | openapi: 3.1.0 |
| 99 | info: |
| 100 | title: Example API |
| 101 | description: API definitions for example |
| 102 | version: '0.0.1' |
| 103 | |
| 104 | components: |
| 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 |
| 117 | paths: |
| 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))); |
nothing calls this directly
no outgoing calls
no test coverage detected