Skip to content

Commit

Permalink
[#139] parse_use_query 테스트코드 재작성
Browse files Browse the repository at this point in the history
  • Loading branch information
myyrakle committed Aug 10, 2024
1 parent 9fcfed5 commit 1f99e8f
Showing 1 changed file with 50 additions and 16 deletions.
66 changes: 50 additions & 16 deletions src/parser/test/other.rs
Original file line number Diff line number Diff line change
Expand Up @@ -213,20 +213,54 @@ fn test_parse_backslash_query() {
}

#[test]
pub fn use_databases_1() {
let text = r#"
Use asdf;
"#
.to_owned();

let mut parser = Parser::with_string(text).unwrap();

let expected = UseDatabaseQuery {
database_name: "asdf".into(),
};

assert_eq!(
parser.parse(ParserContext::default()).unwrap(),
vec![expected.into()],
);
fn test_parse_use_query() {
struct TestCase {
name: String,
input: Vec<Token>,
expected: SQLStatement,
want_error: bool,
}

let test_cases = vec![
TestCase {
name: "Use Database".into(),
input: vec![Token::Identifier("asdf".into())],
expected: UseDatabaseQuery {
database_name: "asdf".into(),
}
.into(),
want_error: false,
},
TestCase {
name: "오류: 빈 토큰".into(),
input: vec![],
expected: Default::default(),
want_error: true,
},
TestCase {
name: "오류: DELETe".into(),
input: vec![Token::Delete],
expected: Default::default(),
want_error: true,
},
];

for t in test_cases {
let mut parser = Parser::new(t.input);

let got = parser.parse_use_query(Default::default());

assert_eq!(
got.is_err(),
t.want_error,
"{}: want_error: {}, error: {:?}",
t.name,
t.want_error,
got.err()
);

if let Ok(statements) = got {
assert_eq!(statements, t.expected.into(), "TC: {}", t.name);
}
}
}

0 comments on commit 1f99e8f

Please sign in to comment.