Added some statement tests
This commit is contained in:
parent
b4a86dca9f
commit
ef7a802993
@ -95,3 +95,46 @@ pub fn execute_select(table: &mut Table) -> Result<Vec<Row>> {
|
||||
|
||||
Ok(rows)
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use crate::{pager::Pager, row::Row, table::Table};
|
||||
use tempfile::NamedTempFile;
|
||||
|
||||
#[test]
|
||||
fn execute_select_with_data_succeeds() {
|
||||
let file = NamedTempFile::new_in("target").unwrap();
|
||||
let pager = Pager::new(file.path()).unwrap();
|
||||
let mut table = Table::new(pager);
|
||||
for _ in 0..5 {
|
||||
execute_insert(Row::default(), &mut table).unwrap();
|
||||
}
|
||||
let rows = execute_select(&mut table).unwrap();
|
||||
assert_eq!(rows.len(), 5);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn execute_insert_exceeding_row_limit_fails() {
|
||||
let file = NamedTempFile::new_in("target").unwrap();
|
||||
let pager = Pager::new(file.path()).unwrap();
|
||||
let mut table = Table::new(pager);
|
||||
for _ in 0..TABLE_MAX_ROWS {
|
||||
let row = Row::new(u16::MAX, "a".repeat(32).as_str(), "a".repeat(255).as_str());
|
||||
execute_insert(row, &mut table).unwrap();
|
||||
}
|
||||
let result = execute_insert(Row::default(), &mut table);
|
||||
assert!(result.is_err());
|
||||
}
|
||||
|
||||
#[test]
|
||||
#[should_panic]
|
||||
fn execute_insert_input_exceeding_length_fails() {
|
||||
let file = NamedTempFile::new_in("target").unwrap();
|
||||
let pager = Pager::new(file.path()).unwrap();
|
||||
let mut table = Table::new(pager);
|
||||
let row = Row::new(u16::MAX, "a".repeat(33).as_str(), "a".repeat(256).as_str());
|
||||
let result = execute_insert(row, &mut table);
|
||||
assert!(result.is_err());
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user