diff options
author | Pierre-Henri Symoneaux <phsym@users.noreply.github.com> | 2017-06-08 00:06:20 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-08 00:06:20 +0200 |
commit | 6b747aa88d1189f49fca22519452c603ace23677 (patch) | |
tree | bbde61499e3b9ada756831b1f9d47e2615350cc8 | |
parent | cf2a344d8f735f9fe7b2150f0cd6964b980cccdf (diff) | |
parent | f329c171d415a1f9fc73891d198b471ee0a9d21c (diff) |
Merge pull request #63 from phsym/increase_coverage
Added test cases
-rw-r--r-- | src/cell.rs | 11 | ||||
-rw-r--r-- | src/lib.rs | 89 | ||||
-rw-r--r-- | src/row.rs | 56 |
3 files changed, 156 insertions, 0 deletions
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); + } } @@ -640,6 +640,15 @@ mod tests { +-----+----+-----+ "; 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); } #[test] @@ -666,6 +675,86 @@ mod tests { } #[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(); table.set_format(*FORMAT_NO_LINESEP); @@ -248,3 +248,59 @@ 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::*; + use cell::Cell; + + #[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(), 1000).is_err()); + 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 |