| 2578 | |
| 2579 | #[allow(clippy::type_complexity)] |
| 2580 | fn assert_serde_variant_results( |
| 2581 | cake_entity: &Entity, |
| 2582 | entity_serde_variant: &(&str, WithSerde, Option<String>), |
| 2583 | generator: Box< |
| 2584 | dyn Fn( |
| 2585 | &Entity, |
| 2586 | &WithSerde, |
| 2587 | &DateTimeCrate, |
| 2588 | &Option<String>, |
| 2589 | bool, |
| 2590 | bool, |
| 2591 | &TokenStream, |
| 2592 | &TokenStream, |
| 2593 | bool, |
| 2594 | bool, |
| 2595 | ) -> Vec<TokenStream>, |
| 2596 | >, |
| 2597 | ) -> io::Result<()> { |
| 2598 | let mut reader = BufReader::new(entity_serde_variant.0.as_bytes()); |
| 2599 | let mut lines: Vec<String> = Vec::new(); |
| 2600 | let serde_skip_deserializing_primary_key = matches!( |
| 2601 | entity_serde_variant.1, |
| 2602 | WithSerde::Both | WithSerde::Deserialize |
| 2603 | ); |
| 2604 | let serde_skip_hidden_column = matches!(entity_serde_variant.1, WithSerde::Serialize); |
| 2605 | |
| 2606 | reader.read_until(b'\n', &mut Vec::new())?; |
| 2607 | |
| 2608 | let mut line = String::new(); |
| 2609 | while reader.read_line(&mut line)? > 0 { |
| 2610 | lines.push(line.to_owned()); |
| 2611 | line.clear(); |
| 2612 | } |
| 2613 | let content = lines.join(""); |
| 2614 | let expected: TokenStream = content.parse().unwrap(); |
| 2615 | println!("{:?}", entity_serde_variant.1); |
| 2616 | let generated = generator( |
| 2617 | cake_entity, |
| 2618 | &entity_serde_variant.1, |
| 2619 | &DateTimeCrate::Chrono, |
| 2620 | &entity_serde_variant.2, |
| 2621 | serde_skip_deserializing_primary_key, |
| 2622 | serde_skip_hidden_column, |
| 2623 | &TokenStream::new(), |
| 2624 | &TokenStream::new(), |
| 2625 | false, |
| 2626 | true, |
| 2627 | ) |
| 2628 | .into_iter() |
| 2629 | .fold(TokenStream::new(), |mut acc, tok| { |
| 2630 | acc.extend(tok); |
| 2631 | acc |
| 2632 | }); |
| 2633 | |
| 2634 | assert_eq!(expected.to_string(), generated.to_string()); |
| 2635 | Ok(()) |
| 2636 | } |
| 2637 | |