#[cfg(test)]
pub mod test {
use crate::{item::UCLISelectItem, select::UCLISelect, ucli::Main};
#[test]
pub fn get_one() {
let select = UCLISelect::new(vec![
UCLISelectItem::default("Option 1", 1),
UCLISelectItem::default("Option 2", 2),
UCLISelectItem::default("Option 3", 10),
]);
let value = Main::new(select).render(true).get();
assert_eq!(value, Some(10));
}
#[test]
pub fn no_selection_error() {
let select = UCLISelect::new(vec![
UCLISelectItem::default("Option 1", 10),
UCLISelectItem::default("Option 2", 10),
UCLISelectItem::default("Option 3", 5),
]);
let value = Main::new(select).render(true).get_value();
assert_eq!(value, Err("No item selected"));
}
#[test]
pub fn get_ok() {
let select = UCLISelect::new(vec![
UCLISelectItem::default("Option 1", 10),
UCLISelectItem::default("Option 2", 10),
UCLISelectItem::default("Option 3", 10),
]);
let value = Main::new(select).set_default_value(0).render(true).get_value().unwrap();
assert_eq!(value, 10);
}
#[test]
pub fn get_default() {
let select = UCLISelect::new(vec![
UCLISelectItem::default("Option 1", 10),
UCLISelectItem::default("Option 2", 10),
UCLISelectItem::default("Option 3", 5),
]);
let value = Main::new(select).set_default_value(2).render(true).get();
assert_eq!(value, Some(5));
}
#[test]
pub fn cant_get() {
let select = UCLISelect::new(vec![
UCLISelectItem::default("Option 1", 10),
UCLISelectItem::new("Option 2".to_string(), 5, true),
UCLISelectItem::default("Option 3", 10),
]);
let value = Main::new(select).render(true).get();
assert_ne!(value.unwrap(), 5);
}
#[test]
pub fn get_none() {
let select = UCLISelect::new(vec![
UCLISelectItem::default("Option 1", 10),
UCLISelectItem::default("Option 2", 10),
UCLISelectItem::default("Option 3", 10),
]);
let value = Main::new(select).render(true).get();
assert_eq!(value, None);
}
}