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)
|
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