use std::path::PathBuf;
use pi_append_log::Layout;
use pi_append_log::file::DefaultFileLayout;
#[test]
fn default_layout_uses_segment_and_archive_names() {
let layout = DefaultFileLayout::new(PathBuf::from("logs"));
assert_eq!(layout.segment_name(&1), PathBuf::from("logs/00000001"));
assert_eq!(
layout.archive_name(&1),
PathBuf::from("logs/00000001.archive")
);
}
#[test]
fn default_layout_parses_only_valid_segment_and_archive_names() {
let layout = DefaultFileLayout::new(PathBuf::from("logs"));
assert_eq!(
layout.parse_segment_name(&PathBuf::from("logs/00000001")),
Some(1)
);
assert_eq!(
layout.parse_archive_name(&PathBuf::from("logs/00000001.archive")),
Some(1)
);
assert_eq!(
layout.parse_segment_name(&PathBuf::from("logs/00000001.archive")),
None
);
assert_eq!(layout.parse_segment_name(&PathBuf::from("logs/1")), None);
assert_eq!(
layout.parse_segment_name(&PathBuf::from("other/00000001")),
None
);
assert_eq!(
layout.parse_segment_name(&PathBuf::from("logs/00000000")),
None
);
}