use std::path::PathBuf;
use pi_append_log::Layout;
use pi_append_log::file::DefaultFileLayout;
#[test]
fn default_layout_uses_eight_digit_active_closed_and_archive_names() {
let layout = DefaultFileLayout::new(PathBuf::from("logs"));
assert_eq!(
layout.active_name(&1),
PathBuf::from("logs/00000001.active")
);
assert_eq!(
layout.closed_name(&1),
PathBuf::from("logs/00000001.closed")
);
assert_eq!(
layout.archive_name(&1),
PathBuf::from("logs/00000001.archive")
);
}
#[test]
fn default_layout_parses_only_its_own_valid_names() {
let layout = DefaultFileLayout::new(PathBuf::from("logs"));
assert_eq!(
layout.parse_active_name(&PathBuf::from("logs/00000001.active")),
Some(1)
);
assert_eq!(
layout.parse_closed_name(&PathBuf::from("logs/00000002.closed")),
Some(2)
);
assert_eq!(
layout.parse_archive_name(&PathBuf::from("logs/00000003.archive")),
Some(3)
);
assert_eq!(
layout.parse_active_name(&PathBuf::from("logs/1.active")),
None
);
assert_eq!(
layout.parse_active_name(&PathBuf::from("logs/00000001.closed")),
None
);
assert_eq!(
layout.parse_active_name(&PathBuf::from("other/00000001.active")),
None
);
assert_eq!(
layout.parse_active_name(&PathBuf::from("logs/00000000.active")),
None
);
}