#![cfg(test)]
use crate::ast::other::desc_table::DescTableQuery;
use crate::ast::other::show_databases::ShowDatabasesQuery;
use crate::ast::other::show_tables::ShowTablesQuery;
use crate::ast::other::use_database::UseDatabaseQuery;
use crate::ast::types::TableName;
use crate::parser::context::ParserContext;
use crate::parser::predule::Parser;
#[test]
pub fn show_databases_1() {
let text = r#"
Show Databases
"#
.to_owned();
let mut parser = Parser::new(text).unwrap();
let expected = ShowDatabasesQuery {};
assert_eq!(
parser.parse(ParserContext::default()).unwrap(),
vec![expected.into()],
);
}
#[test]
pub fn show_databases_2() {
let text = r#"
\l
"#
.to_owned();
let mut parser = Parser::new(text).unwrap();
let expected = ShowDatabasesQuery {};
assert_eq!(
parser.parse(ParserContext::default()).unwrap(),
vec![expected.into()],
);
}
#[test]
pub fn use_databases_1() {
let text = r#"
Use asdf;
"#
.to_owned();
let mut parser = Parser::new(text).unwrap();
let expected = UseDatabaseQuery {
database_name: "asdf".into(),
};
assert_eq!(
parser.parse(ParserContext::default()).unwrap(),
vec![expected.into()],
);
}
#[test]
pub fn desc_table_1() {
let text = r#"
desc asdf;
"#
.to_owned();
let mut parser = Parser::new(text).unwrap();
let expected = DescTableQuery {
table_name: TableName {
database_name: None,
table_name: "asdf".into(),
},
};
assert_eq!(
parser.parse(ParserContext::default()).unwrap(),
vec![expected.into()],
);
}
#[test]
pub fn show_tables_1() {
let text = r#"
show tables;
"#
.to_owned();
let mut parser = Parser::new(text).unwrap();
let expected = ShowTablesQuery {
database: "rrdb".into(),
};
assert_eq!(
parser
.parse(ParserContext::default().set_default_database("rrdb".into()))
.unwrap(),
vec![expected.into()],
);
}