// Unit tests for models use movie_mapper::model::file::MediaFile; use std::path::PathBuf; #[test] fn test_media_file_creation() { let path = PathBuf::from("/test/video.mp4"); let file = MediaFile::from_path(path); assert_eq!(file.name, "video.mp4"); assert!(!file.is_folder); assert_eq!(file.tags.len(), 0); } #[test] fn test_media_file_tagging() { let mut file = MediaFile::from_path(PathBuf::from("/test/video.mp4")); // Add tags file.add_tag("extra"); file.add_tag("behind-the-scenes"); assert!(file.is_tagged("extra")); assert!(file.is_tagged("behind-the-scenes")); assert_eq!(file.tags.len(), 2); // Remove a tag file.remove_tag("extra"); assert!(!file.is_tagged("extra")); assert!(file.is_tagged("behind-the-scenes")); assert_eq!(file.tags.len(), 1); } #[test] fn test_episode_identifier() { use movie_mapper::model::episode::Episode; let episode = Episode { id: 1, name: "Pilot".to_string(), number: 1, season_number: 1, aired: Some("2023-01-01".to_string()), runtime: Some(60), }; assert_eq!(episode.identifier(), "E01"); }