From 937bd61d5eae7eb257996c42bfbafd892ad4d66b Mon Sep 17 00:00:00 2001 From: Jordan Petridis Date: Sun, 21 Jan 2018 12:17:47 +0200 Subject: [PATCH] NewPodcast: Add unit test for the to_podcast() method. --- hammond-data/src/models/new_podcast.rs | 39 +++++++++++++++++++++++++- 1 file changed, 38 insertions(+), 1 deletion(-) diff --git a/hammond-data/src/models/new_podcast.rs b/hammond-data/src/models/new_podcast.rs index 00094a8..5735943 100644 --- a/hammond-data/src/models/new_podcast.rs +++ b/hammond-data/src/models/new_podcast.rs @@ -351,11 +351,21 @@ mod tests { let updated = &*UPDATED_DESC_INTERCEPTED; updated.update(old.id()).unwrap(); - let new = dbqueries::get_podcast_from_source_id(42).unwrap(); + let mut new = dbqueries::get_podcast_from_source_id(42).unwrap(); assert_ne!(old, new); assert_eq!(updated, &new); assert_ne!(updated, &old); + + // Chech that the update does not override user preferences. + new.set_archive(true); + new.save().unwrap(); + + let updated = &*UPDATED_DESC_INTERCEPTED; + updated.update(old.id()).unwrap(); + + let new2 = dbqueries::get_podcast_from_source_id(42).unwrap(); + assert_eq!(true, new2.archive()); } #[test] @@ -380,4 +390,31 @@ mod tests { // Assert it's diff from the old one. assert_ne!(new, old); } + + #[test] + fn test_to_podcast() { + // Assert insert() produces the same result that you would get with to_podcast() + truncate_db().unwrap(); + EXPECTED_INTERCEPTED.insert().unwrap(); + let old = dbqueries::get_podcast_from_source_id(42).unwrap(); + let pd = EXPECTED_INTERCEPTED.to_podcast().unwrap(); + assert_eq!(old, pd); + + // Same as above, diff order + truncate_db().unwrap(); + let pd = EXPECTED_INTERCEPTED.to_podcast().unwrap(); + // This should error as a unique constrain violation + assert!(EXPECTED_INTERCEPTED.insert().is_err()); + let mut old = dbqueries::get_podcast_from_source_id(42).unwrap(); + assert_eq!(old, pd); + + old.set_archive(true); + old.save().unwrap(); + + // Assert that it does not mess with user preferences + let pd = UPDATED_DESC_INTERCEPTED.to_podcast().unwrap(); + let old = dbqueries::get_podcast_from_source_id(42).unwrap(); + assert_eq!(old, pd); + assert_eq!(old.archive(), true); + } }