41 lines
998 B
Rust
41 lines
998 B
Rust
use domain::entry::Mood;
|
|
use domain::errors::DomainError;
|
|
|
|
#[test]
|
|
fn mood_values_map_to_expected_scale() {
|
|
assert_eq!(Mood::Awful.value(), 1);
|
|
assert_eq!(Mood::Bad.value(), 2);
|
|
assert_eq!(Mood::Meh.value(), 3);
|
|
assert_eq!(Mood::Good.value(), 4);
|
|
assert_eq!(Mood::Rad.value(), 5);
|
|
}
|
|
|
|
#[test]
|
|
fn mood_ordering_reflects_scale() {
|
|
assert!(Mood::Awful < Mood::Bad);
|
|
assert!(Mood::Bad < Mood::Meh);
|
|
assert!(Mood::Meh < Mood::Good);
|
|
assert!(Mood::Good < Mood::Rad);
|
|
}
|
|
|
|
#[test]
|
|
fn valid_values_convert_to_mood() {
|
|
for value in 1..=5u8 {
|
|
let mood = Mood::try_from(value);
|
|
assert!(mood.is_ok());
|
|
assert_eq!(mood.unwrap().value(), value);
|
|
}
|
|
}
|
|
|
|
#[test]
|
|
fn zero_is_invalid_mood_value() {
|
|
let result = Mood::try_from(0u8);
|
|
assert!(matches!(result, Err(DomainError::InvalidInput(_))));
|
|
}
|
|
|
|
#[test]
|
|
fn six_is_invalid_mood_value() {
|
|
let result = Mood::try_from(6u8);
|
|
assert!(matches!(result, Err(DomainError::InvalidInput(_))));
|
|
}
|