Add hook implementation for succeeding hook tests
This commit is contained in:
parent
0cdeeb4c55
commit
85097554e9
1 changed files with 105 additions and 1 deletions
|
@ -2154,7 +2154,7 @@ mod store_tests {
|
||||||
|
|
||||||
use super::Store;
|
use super::Store;
|
||||||
|
|
||||||
fn get_store() -> Store {
|
pub fn get_store() -> Store {
|
||||||
Store::new(PathBuf::from("/"), None).unwrap()
|
Store::new(PathBuf::from("/"), None).unwrap()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2275,3 +2275,107 @@ mod store_tests {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(test)]
|
||||||
|
mod store_hook_tests {
|
||||||
|
use super::store_tests::get_store;
|
||||||
|
|
||||||
|
mod succeeding_hook {
|
||||||
|
use hook::Hook;
|
||||||
|
use hook::accessor::HookDataAccessor;
|
||||||
|
use hook::accessor::HookDataAccessorProvider;
|
||||||
|
use hook::position::HookPosition;
|
||||||
|
|
||||||
|
use self::accessor::SucceedingHookAccessor as DHA;
|
||||||
|
|
||||||
|
use toml::Value;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct SucceedingHook {
|
||||||
|
position: HookPosition,
|
||||||
|
accessor: DHA,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl SucceedingHook {
|
||||||
|
|
||||||
|
pub fn new(pos: HookPosition) -> SucceedingHook {
|
||||||
|
SucceedingHook { position: pos.clone(), accessor: DHA::new(pos) }
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Hook for SucceedingHook {
|
||||||
|
fn name(&self) -> &'static str { "testhook_succeeding" }
|
||||||
|
fn set_config(&mut self, _: &Value) { }
|
||||||
|
}
|
||||||
|
|
||||||
|
impl HookDataAccessorProvider for SucceedingHook {
|
||||||
|
|
||||||
|
fn accessor(&self) -> HookDataAccessor {
|
||||||
|
use hook::position::HookPosition as HP;
|
||||||
|
use hook::accessor::HookDataAccessor as HDA;
|
||||||
|
|
||||||
|
match self.position {
|
||||||
|
HP::StoreUnload |
|
||||||
|
HP::PreCreate |
|
||||||
|
HP::PreRetrieve |
|
||||||
|
HP::PreDelete |
|
||||||
|
HP::PostDelete => HDA::StoreIdAccess(&self.accessor),
|
||||||
|
HP::PostCreate |
|
||||||
|
HP::PostRetrieve |
|
||||||
|
HP::PreUpdate |
|
||||||
|
HP::PostUpdate => HDA::MutableAccess(&self.accessor),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
pub mod accessor {
|
||||||
|
use hook::result::HookResult;
|
||||||
|
use hook::accessor::MutableHookDataAccessor;
|
||||||
|
use hook::accessor::NonMutableHookDataAccessor;
|
||||||
|
use hook::accessor::StoreIdAccessor;
|
||||||
|
use hook::position::HookPosition;
|
||||||
|
use store::FileLockEntry;
|
||||||
|
use storeid::StoreId;
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
pub struct SucceedingHookAccessor(HookPosition);
|
||||||
|
|
||||||
|
impl SucceedingHookAccessor {
|
||||||
|
|
||||||
|
pub fn new(position: HookPosition) -> SucceedingHookAccessor {
|
||||||
|
SucceedingHookAccessor(position)
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
impl StoreIdAccessor for SucceedingHookAccessor {
|
||||||
|
|
||||||
|
fn access(&self, id: &StoreId) -> HookResult<()> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
impl MutableHookDataAccessor for SucceedingHookAccessor {
|
||||||
|
|
||||||
|
fn access_mut(&self, fle: &mut FileLockEntry) -> HookResult<()> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
impl NonMutableHookDataAccessor for SucceedingHookAccessor {
|
||||||
|
|
||||||
|
fn access(&self, fle: &FileLockEntry) -> HookResult<()> {
|
||||||
|
Ok(())
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue