1use crate::{mutex::UnsafeMutex, track::Track};
2use std::{collections::HashMap, sync::Arc};
3
4#[derive(Default, Debug)]
5pub struct State {
6 pub tracks: HashMap<String, Arc<UnsafeMutex<Box<Track>>>>,
7}
8
9#[cfg(test)]
10mod tests {
11 use super::*;
12
13 #[test]
14 fn state_default_creates_empty() {
15 let state = State::default();
16 assert!(state.tracks.is_empty());
17 }
18
19 #[test]
20 fn state_debug_format() {
21 let state = State::default();
22 let debug_str = format!("{:?}", state);
23 assert!(debug_str.contains("State"));
24 assert!(debug_str.contains("tracks"));
25 }
26
27 #[test]
28 fn state_new_is_default() {
29 let state1 = State::default();
30 let state2 = State {
31 tracks: HashMap::new(),
32 };
33 assert_eq!(state1.tracks.len(), state2.tracks.len());
34 }
35}