pub struct MockDatabase {
pub projections: RwLock<HashMap<String, MockProjection>>,
pub should_fail_on: Option<String>,
pub call_count: RwLock<HashMap<String, usize>>,
}
Expand description
Simple in-memory mock database for testing
Fields§
§projections: RwLock<HashMap<String, MockProjection>>
§should_fail_on: Option<String>
§call_count: RwLock<HashMap<String, usize>>
Implementations§
source§impl MockDatabase
impl MockDatabase
pub fn new() -> Self
sourcepub fn with_projection(self, name: &str, nodes: Vec<NodeMetrics>) -> Self
pub fn with_projection(self, name: &str, nodes: Vec<NodeMetrics>) -> Self
Add a test projection with predefined data
sourcepub fn fail_on(self, operation: &str) -> Self
pub fn fail_on(self, operation: &str) -> Self
Configure the mock to fail on a specific operation
sourcepub fn get_call_count(&self, method: &str) -> usize
pub fn get_call_count(&self, method: &str) -> usize
Get the number of times a method was called
Trait Implementations§
source§impl AnalysisDatabase for MockDatabase
impl AnalysisDatabase for MockDatabase
source§fn create_graph_projection<'life0, 'life1, 'async_trait>(
&'life0 self,
params: &'life1 GraphProjectionParams,
) -> Pin<Box<dyn Future<Output = Result<(), AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn create_graph_projection<'life0, 'life1, 'async_trait>(
&'life0 self,
params: &'life1 GraphProjectionParams,
) -> Pin<Box<dyn Future<Output = Result<(), AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Creates or recreates a GDS graph projection.
If a projection with the same name exists, it should ideally be dropped
and recreated.
source§fn delete_graph_projection<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn delete_graph_projection<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<(), AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Deletes an existing GDS graph projection if it exists.
Should succeed even if the projection does not exist (making
it idempotent).
source§fn check_graph_projection_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn check_graph_projection_exists<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<bool, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Checks if a GDS graph projection with the given name exists.
source§fn calculate_node_degrees<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<NodeMetrics>, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn calculate_node_degrees<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<Vec<NodeMetrics>, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Calculates node-level degree metrics for all nodes in a
given GDS projection.
Returns a vector of NodeMetrics containing in-degree,
out-degree, and total degree for each node in the graph.
source§fn calculate_graph_metrics<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<GraphMetrics, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn calculate_graph_metrics<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<GraphMetrics, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Calculates comprehensive graph metrics for a given GDS projection
including basic counts, degree distribution, and degree statistics.
source§fn calculate_weakly_connected_components<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ComponentAnalysisResult, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn calculate_weakly_connected_components<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ComponentAnalysisResult, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Calculates weakly connected components using Neo4j GDS WCC algorithm.
Returns analysis results containing components, sizes, and statistics.
source§fn calculate_strongly_connected_components<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ComponentAnalysisResult, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn calculate_strongly_connected_components<'life0, 'life1, 'async_trait>(
&'life0 self,
projection_name: &'life1 str,
) -> Pin<Box<dyn Future<Output = Result<ComponentAnalysisResult, AnalysisError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Calculates strongly connected components using Neo4j GDS SCC algorithm.
Returns analysis results containing components, sizes, and statistics.
source§impl Debug for MockDatabase
impl Debug for MockDatabase
Auto Trait Implementations§
impl !Freeze for MockDatabase
impl RefUnwindSafe for MockDatabase
impl Send for MockDatabase
impl Sync for MockDatabase
impl Unpin for MockDatabase
impl UnwindSafe for MockDatabase
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more