From ef7a80299389f71267176ee5d1bfacd3ee0f9fe9 Mon Sep 17 00:00:00 2001 From: niku <nvdpoel01@gmail.com> Date: Tue, 15 Aug 2023 19:49:22 +0200 Subject: [PATCH] Added some statement tests --- src/statement.rs | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/src/statement.rs b/src/statement.rs index bb70136..e25d760 100644 --- a/src/statement.rs +++ b/src/statement.rs @@ -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()); + } +}