use super::parse; use super::parsed_statement::ParsedStatement; use crate::parsing::lexer::lex_tokens::TokenType; #[test] fn test_empty_namespace() { let script = parse(vec![ TokenType::NamespaceKeyword, TokenType::WhiteSpace, TokenType::Identifier("foo".to_string()), TokenType::WhiteSpace, TokenType::OpenCurlyBracket, TokenType::CloseCurlyBracket, TokenType::EndOfFile, ]); if let ParsedStatement::Script(inner) = script.as_ref() { assert_eq!(1, inner.len()); if let ParsedStatement::Namespace(identifier, inner_script) = inner[0].as_ref() { assert_eq!(identifier, "foo"); if let ParsedStatement::Script(inner) = inner_script.as_ref() { assert_eq!(0, inner.len()); } else { unreachable!(); } } else { unreachable!() } } else { unreachable!(); } }