Skip to content

Commit

Permalink
[#142] parse_offset 테스트코드 작성
Browse files Browse the repository at this point in the history
  • Loading branch information
myyrakle committed Jul 29, 2024
1 parent c229278 commit 1ddd51e
Showing 1 changed file with 62 additions and 0 deletions.
62 changes: 62 additions & 0 deletions src/parser/test/select.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2313,3 +2313,65 @@ fn test_parse_having() {
}
}
}

#[test]
fn test_parse_offset() {
struct TestCase {
name: String,
input: Vec<Token>,
expected: u32,
want_error: bool,
}

let test_cases = vec![
TestCase {
name: "OFFSET 5".into(),
input: vec![Token::Offset, Token::Integer(5)],
expected: 5,
want_error: false,
},
TestCase {
name: "OFFSET SELECT".into(),
input: vec![Token::Offset, Token::Select],
expected: 0,
want_error: true,
},
TestCase {
name: "OFFSET 5;".into(),
input: vec![Token::Offset, Token::Integer(5), Token::SemiColon],
expected: 5,
want_error: false,
},
TestCase {
name: "실패: SELECT".into(),
input: vec![Token::Select],
expected: 0,
want_error: true,
},
TestCase {
name: "실패: 빈 토큰".into(),
input: vec![],
expected: 0,
want_error: true,
},
];

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

let got = parser.parse_offset(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, "TC: {}", t.name);
}
}
}

0 comments on commit 1ddd51e

Please sign in to comment.