test: shared factories and command builders

This commit is contained in:
2026-10-25 22:08:17 +01:00
parent 2ac1d4e0cf
commit 51d92e08a7
58 changed files with 784 additions and 1344 deletions

View File

@@ -1,18 +1,9 @@
use super::*;
use crate::models::{Movie, Review, ReviewHistory};
use crate::value_objects::{MovieId, MovieTitle, Rating, ReleaseYear, UserId};
use crate::models::{Review, ReviewHistory};
use crate::testing::test_movie_with_year;
use crate::value_objects::{MovieId, Rating, UserId};
use chrono::{NaiveDate, NaiveDateTime, NaiveTime};
fn make_movie() -> Movie {
Movie::new(
None,
MovieTitle::new("Test".into()).unwrap(),
ReleaseYear::new(2024).unwrap(),
None,
None,
)
}
fn dt(year: i32, month: u32, day: u32) -> NaiveDateTime {
NaiveDateTime::new(
NaiveDate::from_ymd_opt(year, month, day).unwrap(),
@@ -36,7 +27,7 @@ fn review_with_rating(movie_id: &MovieId, rating: u8, watched_at: NaiveDateTime)
#[test]
fn neutral_when_empty() {
let movie = make_movie();
let movie = test_movie_with_year("Test", 2024);
let history = ReviewHistory::new(movie, vec![]);
let trend = ReviewHistoryAnalyzer::rating_trend(&history).unwrap();
assert_eq!(trend, Trend::Neutral);
@@ -44,7 +35,7 @@ fn neutral_when_empty() {
#[test]
fn neutral_when_single_review() {
let movie = make_movie();
let movie = test_movie_with_year("Test", 2024);
let r = review_with_rating(movie.id(), 4, dt(2024, 1, 1));
let history = ReviewHistory::new(movie, vec![r]);
let trend = ReviewHistoryAnalyzer::rating_trend(&history).unwrap();
@@ -53,7 +44,7 @@ fn neutral_when_single_review() {
#[test]
fn improved_when_latest_above_average() {
let movie = make_movie();
let movie = test_movie_with_year("Test", 2024);
let viewings = vec![
review_with_rating(movie.id(), 2, dt(2024, 1, 1)),
review_with_rating(movie.id(), 3, dt(2024, 2, 1)),
@@ -66,7 +57,7 @@ fn improved_when_latest_above_average() {
#[test]
fn declined_when_latest_below_average() {
let movie = make_movie();
let movie = test_movie_with_year("Test", 2024);
let viewings = vec![
review_with_rating(movie.id(), 5, dt(2024, 1, 1)),
review_with_rating(movie.id(), 4, dt(2024, 2, 1)),