#[cfg(test)]
mod tests {
use crate::{BufferSource, parse};
#[test]
fn test_flow_mapping_trailing_comma_simple() {
let yaml = b"{ a: 1, b: 2, }";
let mut source = BufferSource::new(yaml);
let result = parse(&mut source);
assert!(
result.is_ok(),
"Should parse flow mapping with trailing comma"
);
}
#[test]
fn test_flow_sequence_trailing_comma_simple() {
let yaml = b"[ 1, 2, 3, ]";
let mut source = BufferSource::new(yaml);
let result = parse(&mut source);
assert!(
result.is_ok(),
"Should parse flow sequence with trailing comma"
);
}
#[test]
fn test_5c5m_flow_mappings() {
let yaml = b"- { one : two , three: four , }\n- {five: six,seven : eight}\n";
let mut source = BufferSource::new(yaml);
let result = parse(&mut source);
assert!(result.is_ok(), "Should parse 5C5M test case");
}
#[test]
fn test_5kje_flow_sequences() {
let yaml = b"- [ one, two, ]\n- [three ,four]\n";
let mut source = BufferSource::new(yaml);
let result = parse(&mut source);
assert!(result.is_ok(), "Should parse 5KJE test case");
}
#[test]
fn test_block_sequence_with_flow_mapping_no_trailing() {
let yaml = b"- {a: 1, b: 2}\n- {c: 3}";
let mut source = BufferSource::new(yaml);
let result = parse(&mut source);
assert!(
result.is_ok(),
"Should parse block sequence with flow mappings"
);
}
#[test]
fn test_block_sequence_with_flow_sequence_no_trailing() {
let yaml = b"- [1, 2]\n- [3, 4]";
let mut source = BufferSource::new(yaml);
let result = parse(&mut source);
assert!(
result.is_ok(),
"Should parse block sequence with flow sequences"
);
}
#[test]
fn test_single_block_item_flow_mapping_trailing() {
let yaml = b"- { a: 1, }";
let mut source = BufferSource::new(yaml);
let result = parse(&mut source);
assert!(result.is_ok(), "Should parse single item");
}
#[test]
fn test_two_block_items_flow_mapping_no_trailing() {
let yaml = b"- { a: 1, }\n- { b: 2 }";
let mut source = BufferSource::new(yaml);
let result = parse(&mut source);
assert!(result.is_ok(), "Should parse two items");
}
}