summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre-Henri Symoneaux <phsym@users.noreply.github.com>2017-06-08 00:06:20 +0200
committerGitHub <noreply@github.com>2017-06-08 00:06:20 +0200
commit6b747aa88d1189f49fca22519452c603ace23677 (patch)
treebbde61499e3b9ada756831b1f9d47e2615350cc8
parentcf2a344d8f735f9fe7b2150f0cd6964b980cccdf (diff)
parentf329c171d415a1f9fc73891d198b471ee0a9d21c (diff)
Merge pull request #63 from phsym/increase_coverage
Added test cases
-rw-r--r--src/cell.rs11
-rw-r--r--src/lib.rs89
-rw-r--r--src/row.rs56
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);
+ }
}
diff --git a/src/lib.rs b/src/lib.rs
index 25029f3..df84fbe 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -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);
diff --git a/src/row.rs b/src/row.rs
index 7bc5fa5..47498dd 100644
--- a/src/row.rs
+++ b/src/row.rs
@@ -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