From f3d6a0b92b7ff7bac744ead80b58b328d39c8b13 Mon Sep 17 00:00:00 2001 From: Pierre-Henri Symoneaux Date: Wed, 7 Jun 2017 15:47:40 +0200 Subject: Added a few UT --- src/cell.rs | 11 +++++++++++ src/row.rs | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+) diff --git a/src/cell.rs b/src/cell.rs index 16ab37e..af70a9d 100644 --- a/src/cell.rs +++ b/src/cell.rs @@ -384,4 +384,15 @@ mod tests { assert_eq!(cell.style.len(), 0); assert_eq!(cell.align, Alignment::LEFT); } + + #[test] + fn default_empty_cell() { + let cell = Cell::default(); + assert_eq!(cell.align, Alignment::LEFT); + assert!(cell.style.is_empty()); + assert_eq!(cell.get_content(), ""); + assert_eq!(cell.to_string(), ""); + assert_eq!(cell.get_height(), 1); + assert_eq!(cell.get_width(), 0); + } } diff --git a/src/row.rs b/src/row.rs index 7bc5fa5..22ae409 100644 --- a/src/row.rs +++ b/src/row.rs @@ -248,3 +248,57 @@ macro_rules! row { ($style:ident => $($content:expr), *) => ($crate::row::Row::new(vec![$(cell!($style -> $content)), *])); ($($content:tt)*) => ($crate::row::Row::new(row!((); $($content)*))); } + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn row_default_empty() { + let row1 = Row::default(); + assert_eq!(row1.len(), 0); + assert!(row1.is_empty()); + } + + #[test] + fn get_add_set_cell() { + let mut row = Row::from(vec!["foo", "bar", "foobar"]); + assert_eq!(row.len(), 3); + assert!(row.get_mut_cell(12).is_none()); + let c1 = row.get_mut_cell(0).unwrap().clone(); + assert_eq!(c1.get_content(), "foo"); + + let c1 = Cell::from(&"baz"); + assert!(row.set_cell(c1.clone(), 0).is_ok()); + assert_eq!(row.get_cell(0).unwrap().get_content(), "baz"); + + row.add_cell(c1.clone()); + assert_eq!(row.len(), 4); + assert_eq!(row.get_cell(3).unwrap().get_content(), "baz"); + } + + #[test] + fn insert_cell() { + let mut row = Row::from(vec!["foo", "bar", "foobar"]); + assert_eq!(row.len(), 3); + let cell = Cell::new("baz"); + row.insert_cell(1000, cell.clone()); + assert_eq!(row.len(), 4); + assert_eq!(row.get_cell(3).unwrap().get_content(), "baz"); + row.insert_cell(1, cell.clone()); + assert_eq!(row.len(), 5); + assert_eq!(row.get_cell(1).unwrap().get_content(), "baz"); + } + + #[test] + fn remove_cell() { + let mut row = Row::from(vec!["foo", "bar", "foobar"]); + assert_eq!(row.len(), 3); + row.remove_cell(1000); + assert_eq!(row.len(), 3); + row.remove_cell(1); + assert_eq!(row.len(), 2); + assert_eq!(row.get_cell(0).unwrap().get_content(), "foo"); + assert_eq!(row.get_cell(1).unwrap().get_content(), "foobar"); + } +} \ No newline at end of file -- cgit v1.2.3 From 9a03e04f9455ac47098395b4d13aa536301cb24c Mon Sep 17 00:00:00 2001 From: Pierre-Henri Symoneaux Date: Wed, 7 Jun 2017 16:03:04 +0200 Subject: Fixed broken build for rust 1.9.0 to 1.14.0 --- src/row.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/row.rs b/src/row.rs index 22ae409..47498dd 100644 --- a/src/row.rs +++ b/src/row.rs @@ -252,6 +252,7 @@ macro_rules! row { #[cfg(test)] mod tests { use super::*; + use cell::Cell; #[test] fn row_default_empty() { @@ -269,6 +270,7 @@ mod tests { assert_eq!(c1.get_content(), "foo"); let c1 = Cell::from(&"baz"); + assert!(row.set_cell(c1.clone(), 1000).is_err()); assert!(row.set_cell(c1.clone(), 0).is_ok()); assert_eq!(row.get_cell(0).unwrap().get_content(), "baz"); -- cgit v1.2.3 From f329c171d415a1f9fc73891d198b471ee0a9d21c Mon Sep 17 00:00:00 2001 From: Pierre-Henri Symoneaux Date: Wed, 7 Jun 2017 23:26:27 +0200 Subject: Added more tests --- src/lib.rs | 89 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index e773cfd..b45433d 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -638,6 +638,15 @@ mod tests { +-----+----+-----+ | def | bc | a | +-----+----+-----+ +"; + assert_eq!(table.to_string().replace("\r\n", "\n"), out); + table.unset_titles(); + let out = "\ ++-----+----+-----+ +| a | bc | def | ++-----+----+-----+ +| def | bc | a | ++-----+----+-----+ "; assert_eq!(table.to_string().replace("\r\n", "\n"), out); } @@ -665,6 +674,86 @@ mod tests { assert_eq!(table.to_string().replace("\r\n", "\n"), out); } + #[test] + fn table_size() { + let mut table = Table::new(); + assert!(table.is_empty()); + assert!(table.as_ref().is_empty()); + assert_eq!(table.len(), 0); + assert_eq!(table.as_ref().len(), 0); + assert_eq!(table.get_column_num(), 0); + assert_eq!(table.as_ref().get_column_num(), 0); + table.add_empty_row(); + assert!(!table.is_empty()); + assert!(!table.as_ref().is_empty()); + assert_eq!(table.len(), 1); + assert_eq!(table.as_ref().len(), 1); + assert_eq!(table.get_column_num(), 0); + assert_eq!(table.as_ref().get_column_num(), 0); + table[0].add_cell(Cell::default()); + assert_eq!(table.get_column_num(), 1); + assert_eq!(table.as_ref().get_column_num(), 1); + } + + #[test] + fn get_row() { + let mut table = Table::new(); + table.add_row(Row::new(vec![Cell::new("a"), Cell::new("bc"), Cell::new("def")])); + table.add_row(Row::new(vec![Cell::new("def"), Cell::new("bc"), Cell::new("a")])); + assert!(table.get_row(12).is_none()); + assert!(table.get_row(1).is_some()); + assert_eq!(table.get_row(1).unwrap()[0].get_content(), "def"); + assert!(table.get_mut_row(12).is_none()); + assert!(table.get_mut_row(1).is_some()); + table.get_mut_row(1).unwrap().add_cell(Cell::new("z")); + assert_eq!(table.get_row(1).unwrap()[3].get_content(), "z"); + } + + #[test] + fn add_empty_row() { + let mut table = Table::new(); + assert_eq!(table.len(), 0); + table.add_empty_row(); + assert_eq!(table.len(), 1); + assert_eq!(table[0].len(), 0); + } + + #[test] + fn remove_row() { + let mut table = Table::new(); + table.add_row(Row::new(vec![Cell::new("a"), Cell::new("bc"), Cell::new("def")])); + table.add_row(Row::new(vec![Cell::new("def"), Cell::new("bc"), Cell::new("a")])); + table.remove_row(12); + assert_eq!(table.len(), 2); + table.remove_row(0); + assert_eq!(table.len(), 1); + assert_eq!(table[0][0].get_content(), "def"); + } + + #[test] + fn insert_row() { + let mut table = Table::new(); + table.add_row(Row::new(vec![Cell::new("a"), Cell::new("bc"), Cell::new("def")])); + table.add_row(Row::new(vec![Cell::new("def"), Cell::new("bc"), Cell::new("a")])); + table.insert_row(12, Row::new(vec![Cell::new("1"), Cell::new("2"), Cell::new("3")])); + assert_eq!(table.len(), 3); + assert_eq!(table[2][1].get_content(), "2"); + table.insert_row(1, Row::new(vec![Cell::new("3"), Cell::new("4"), Cell::new("5")])); + assert_eq!(table.len(), 4); + assert_eq!(table[1][1].get_content(), "4"); + assert_eq!(table[2][1].get_content(), "bc"); + } + + #[test] + fn set_element() { + let mut table = Table::new(); + table.add_row(Row::new(vec![Cell::new("a"), Cell::new("bc"), Cell::new("def")])); + table.add_row(Row::new(vec![Cell::new("def"), Cell::new("bc"), Cell::new("a")])); + assert!(table.set_element("foo", 12, 12).is_err()); + assert!(table.set_element("foo", 1, 1).is_ok()); + assert_eq!(table[1][1].get_content(), "foo"); + } + #[test] fn no_linesep() { let mut table = Table::new(); -- cgit v1.2.3