Skip to content

Commit

Permalink
🚧 Continue working out some kinks in the readers
Browse files Browse the repository at this point in the history
  • Loading branch information
rster2002 committed May 7, 2024
1 parent 0b511a8 commit a22d6ef
Show file tree
Hide file tree
Showing 2 changed files with 96 additions and 0 deletions.
43 changes: 43 additions & 0 deletions ed-journals/src/models/journal_file_reader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -277,6 +277,49 @@ mod tests {
fs::remove_file("d.tmp").unwrap();
}

#[test]
fn partial_last_lines_are_read_correctly_3() {
fs::write("e.tmp", "").unwrap();

let file = File::open("e.tmp").unwrap();

let mut reader = JournalFileReader::from(file);

assert!(reader.next().is_none());

fs::write(
"e.tmp",
r#"{"timestamp":"2022-10-22T15:10:41Z","event":"Fileheader","part":1,"language":"English/UK","Odyssey":true,"gameversion":"4.0.0.1450","build":"r286858/r0 "}"#,
)
.unwrap();

assert!(reader.next().is_some());

fs::write("e.tmp", r#"{"timestamp":"2022-10-22T15:10:41Z","event":"Fileheader","part":1,"language":"English/UK","Odyssey":true,"gameversion":"4.0.0.1450","build":"r286858/r0 "}
{"timestamp":"2022-10-22T15:12:05Z",
"#)
.unwrap();

assert!(reader.next().is_none());
assert_eq!(reader.file_read_buffer, r#"{"timestamp":"2022-10-22T15:12:05Z","#);

fs::write("e.tmp", r#"{"timestamp":"2022-10-22T15:10:41Z","event":"Fileheader","part":1,"language":"English/UK","Odyssey":true,"gameversion":"4.0.0.1450","build":"r286858/r0 "}
{"timestamp":"2022-10-22T15:12:05Z","event":"Commander","FID":"F123456789","Name":"TEST"}
"#)
.unwrap();


assert_eq!(
reader.next().unwrap().unwrap().content.kind(),
JournalEventContentKind::Commander
);

assert!(reader.next().is_none());

fs::remove_file("e.tmp").unwrap();
}


#[test]
fn incorrect_lines_return_an_err_only_when_it_is_expected() {
fs::write("b.tmp", "").unwrap();
Expand Down
53 changes: 53 additions & 0 deletions ed-journals/src/models/live_journal_file_reader.rs
Original file line number Diff line number Diff line change
Expand Up @@ -147,18 +147,71 @@ mod tests {
if count == 1 {
assert_eq!(entry.content.kind(), JournalEventContentKind::FileHeader);

file.write_all("\n".as_bytes())
.unwrap();
file.write_all(r#"{"timestamp":"2022-10-22T15:12:05Z","event":"Commander","FID":"F123456789","Name":"TEST"}"#.as_bytes())
.unwrap();
}

if count == 2 {
assert_eq!(entry.content.kind(), JournalEventContentKind::Commander);

dbg!("Here");
active_local.close();
}
}
});

handle.join().unwrap();
}

// #[test]
// fn live_reader_reads_journal_file_correctly_2() {
// let mut file = File::create("input.log")
// .unwrap();
//
// file.write_all(r#"{"timestamp":"2022-10-22T15:10:41Z","event":"Fileheader","part":1,"language":"English/UK","Odyssey":true,"gameversion":"4.0.0.1450","build":"r286858/r0 "}"#.as_bytes())
// .unwrap();
//
// let reader = LiveJournalFileReader::new(PathBuf::from("input.log"))
// .unwrap();
//
// let active = reader.activation();
// let active_local = reader.activation();
//
// let handle = thread::spawn(move || {
// let mut count = 0;
//
// for entry in reader {
// let entry = entry.unwrap();
// count += 1;
//
// if count == 1 {
// assert_eq!(entry.content.kind(), JournalEventContentKind::FileHeader);
//
// file.write_all("".as_bytes())
// .unwrap();
// }
//
// if count == 2 {
// file.write_all("".as_bytes())
// .unwrap();
// file.write_all(r#"{"timestamp":"2022-10-22T15:12:05Z","event":"Commander","FID":"F123456789","Name":"TEST"}"#.as_bytes())
// .unwrap();
//
//
//
// }
//
// if count == 3 {
// assert_eq!(entry.content.kind(), JournalEventContentKind::Commander);
//
// dbg!("Here");
// active_local.close();
// }
// }
// });
//
// handle.join().unwrap();
// }
}

0 comments on commit a22d6ef

Please sign in to comment.