use super::*;
#[test]
fn token_scanner_scan_text_default_case() {
let source = "regular_text";
let mut scanner = TokenScanner::new(source, 0, 1, 1);
let result = scanner.scan_text(crate::tokenizer::state::TokenContext::Document);
assert!(result.is_ok());
assert_eq!(result.unwrap(), crate::tokenizer::tokens::TokenType::Text);
}
#[test]
fn token_scanner_is_hex_value_ampersand_suffix() {
assert!(TokenScanner::is_hex_value("&H1234&"));
assert!(TokenScanner::is_hex_value("&HABCD&"));
assert!(!TokenScanner::is_hex_value("&H&")); }
#[test]
fn token_scanner_is_hex_value_no_ampersand() {
assert!(TokenScanner::is_hex_value("&H1234"));
assert!(TokenScanner::is_hex_value("&HABCD"));
}
#[test]
fn token_scanner_scan_field_value_basic() {
let source = "field_value,next";
let mut scanner = TokenScanner::new(source, 0, 1, 1);
let result = scanner.scan_field_value();
assert!(result.is_ok());
}
#[test]
fn char_navigator_peek_char_error_path() {
let source = "a";
let mut nav = CharNavigator::new(source, 0, 1, 1);
nav.advance_char().unwrap();
assert!(nav.is_at_end());
let result = nav.peek_char();
assert!(result.is_err());
}
#[test]
fn char_navigator_peek_next_error_path() {
let source = "a";
let nav = CharNavigator::new(source, 0, 1, 1);
let result = nav.peek_next();
assert!(result.is_err());
}