()
| 261 | |
| 262 | #[test] |
| 263 | fn test_to_internal() { |
| 264 | // Filter with a single column |
| 265 | let mut column = HashMap::new(); |
| 266 | column.insert( |
| 267 | "foo".to_string(), |
| 268 | ComparisonOperator::Eq(MetadataColumnValue::StringValue("hello".to_string())), |
| 269 | ); |
| 270 | let filter = Filter::Comparison { column }; |
| 271 | let internal = filter.to_internal().unwrap(); |
| 272 | match internal { |
| 273 | metadata::Filter::Is(pred) => { |
| 274 | assert_eq!("foo", pred.field_name); |
| 275 | assert_eq!( |
| 276 | pred.field_value, |
| 277 | metadata::FieldValue::String("hello".to_string()), |
| 278 | ); |
| 279 | assert_eq!(pred.operator, metadata::Operator::Equal); |
| 280 | } |
| 281 | _ => panic!(), |
| 282 | } |
| 283 | |
| 284 | // Filter with multiple columns |
| 285 | let mut column = HashMap::new(); |
| 286 | column.insert( |
| 287 | "a".to_string(), |
| 288 | ComparisonOperator::Eq(MetadataColumnValue::StringValue("hello".to_string())), |
| 289 | ); |
| 290 | column.insert( |
| 291 | "b".to_string(), |
| 292 | ComparisonOperator::Ne(MetadataColumnValue::IntValue(2)), |
| 293 | ); |
| 294 | let filter = Filter::Comparison { column }; |
| 295 | let internal = filter.to_internal().unwrap(); |
| 296 | match internal { |
| 297 | metadata::Filter::And(preds) => { |
| 298 | assert_eq!(2, preds.len()); |
| 299 | let p1 = preds.iter().find(|p| p.field_name == "a").unwrap(); |
| 300 | assert_eq!("a", p1.field_name); |
| 301 | assert_eq!( |
| 302 | p1.field_value, |
| 303 | metadata::FieldValue::String("hello".to_string()), |
| 304 | ); |
| 305 | assert_eq!(p1.operator, metadata::Operator::Equal); |
| 306 | |
| 307 | let p2 = preds.iter().find(|p| p.field_name == "b").unwrap(); |
| 308 | assert_eq!("b", p2.field_name); |
| 309 | assert_eq!(p2.field_value, metadata::FieldValue::Int(2)); |
| 310 | assert_eq!(p2.operator, metadata::Operator::NotEqual); |
| 311 | } |
| 312 | _ => panic!(), |
| 313 | } |
| 314 | |
| 315 | // Filter with Logical::And + single column filters |
| 316 | let mut c1 = HashMap::new(); |
| 317 | c1.insert( |
| 318 | "a".to_string(), |
| 319 | ComparisonOperator::Eq(MetadataColumnValue::StringValue("hello".to_string())), |
| 320 | ); |
nothing calls this directly
no test coverage detected