#[cfg(test)]
mod tests {
use super::*;
use quote::quote;
use syn::parse::Parser;
use syn::parse_str;
#[test]
fn test_parse_string_array() {
let input = parse_str::<syn::ExprArray>("[\"apple\", \"banana\", \"cherry\"]").unwrap();
let tokens = quote! { #input };
let buffer = syn::parse2(tokens).unwrap();
let result = parse_array_literal(&buffer);
assert!(result.is_some());
let tokens = result.unwrap();
assert_eq!(tokens.len(), 3);
}
#[test]
fn test_parse_int_array() {
let input = parse_str::<syn::ExprArray>("[1, 2, 3, 4]").unwrap();
let tokens = quote! { #input };
let buffer = syn::parse2(tokens).unwrap();
let result = parse_array_literal(&buffer);
assert!(result.is_some());
let tokens = result.unwrap();
assert_eq!(tokens.len(), 4);
}
#[test]
fn test_parse_mixed_array() {
let input = parse_str::<syn::ExprArray>("[\"string\", 42, true]").unwrap();
let tokens = quote! { #input };
let buffer = syn::parse2(tokens).unwrap();
let result = parse_array_literal(&buffer);
assert!(result.is_some());
let tokens = result.unwrap();
assert_eq!(tokens.len(), 3);
}
#[test]
fn test_parse_empty_array() {
let input = parse_str::<syn::ExprArray>("[]").unwrap();
let tokens = quote! { #input };
let buffer = syn::parse2(tokens).unwrap();
let result = parse_array_literal(&buffer);
assert!(result.is_some());
let tokens = result.unwrap();
assert_eq!(tokens.len(), 0);
}
}