1pub mod data;
5pub mod quiz;
6
7pub use data::*;
8pub use quiz::*;
9
10#[cfg(test)]
11mod test {
12 use super::*;
13 use std::fs::OpenOptions;
14
15 #[test]
16 fn serializes() {
17 let raw_values = vec![
18 (1u8, "Do you love her?", "yes"),
19 (1u8, "Amoogns cronut", "no"),
20 (1u8, "Weeeeeeeeeeee", "yes"),
21 (1u8, "Fourth question?", "yes"),
22 (1u8, "Is the next question of the same type?", "no"),
23 (2u8, "Who is the bestest doggo in the world?", "Rosie"),
24 (2u8, "Who is the smelliest doggo in the world?", "Tasha"),
25 (3u8, "What is life?", "Damn bro idk"),
26 (
27 3u8,
28 "What is this hit game called Amongus?",
29 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
30 ),
31 ];
32
33 let file = OpenOptions::new().write(true).create(true).open("dump.bin");
34 assert!(file.is_ok());
35 let mut file = file.unwrap();
36
37 let quiz = quiz::Quiz::from(raw_values);
38 let res = data::dump(&mut file, &quiz);
39
40 assert!(res.is_ok());
41 }
42
43 #[test]
44 fn deserializes() {
45 let raw_values = vec![
46 (1u8, "Do you love her?", "yes"),
47 (1u8, "Amoogns cronut", "no"),
48 (1u8, "Weeeeeeeeeeee", "yes"),
49 (1u8, "Fourth question?", "yes"),
50 (1u8, "Is the next question of the same type?", "no"),
51 (2u8, "Who is the bestest doggo in the world?", "Rosie"),
52 (2u8, "Who is the smelliest doggo in the world?", "Tasha"),
53 (3u8, "What is life?", "Damn bro idk"),
54 (
55 3u8,
56 "What is this hit game called Amongus?",
57 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
58 ),
59 ];
60
61 let file = OpenOptions::new().read(true).open("dump.bin");
62 assert!(file.is_ok());
63 let mut file = file.unwrap();
64
65 let quiz = quiz::Quiz::from(raw_values);
66
67 let res = data::load(&mut file);
68 if let Err(e) = &res {
69 dbg!(e);
70 }
71
72 assert!(res.is_ok());
73 assert_eq!(quiz, res.unwrap())
74 }
75}