| 450 | |
| 451 | #[test] |
| 452 | fn roundtrip() { |
| 453 | let values = vec![ |
| 454 | RespValue::ok(), |
| 455 | RespValue::err("ERR test"), |
| 456 | RespValue::integer(99), |
| 457 | RespValue::bulk_str("hello"), |
| 458 | RespValue::nil(), |
| 459 | RespValue::array(vec![RespValue::bulk_str("a"), RespValue::integer(1)]), |
| 460 | ]; |
| 461 | |
| 462 | for original in &values { |
| 463 | let bytes = original.to_bytes(); |
| 464 | let mut parser = RespParser::new(); |
| 465 | parser.feed(&bytes); |
| 466 | let parsed = parser.try_parse().unwrap().unwrap(); |
| 467 | assert_eq!(&parsed, original, "roundtrip failed for {original:?}"); |
| 468 | } |
| 469 | } |
| 470 | } |