40
crates/domain/tests/entry/mood_test.rs
Normal file
40
crates/domain/tests/entry/mood_test.rs
Normal file
@@ -0,0 +1,40 @@
|
||||
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(_))));
|
||||
}
|
||||
Reference in New Issue
Block a user