grass/dev/strategy/api/
mock.rs

1use crate::dev::strategy::{
2    alias::{MockAliasStrategy, SupportsAlias},
3    discovery::MockDiscoveryStrategy,
4    git::MockGitStrategy,
5    path::MockPathStrategy,
6};
7
8use super::{SupportsDiscovery, SupportsGit, SupportsPath};
9
10#[derive(Default)]
11pub struct MockApiStrategy {
12    alias_strategy: MockAliasStrategy,
13    discovery_strategy: MockDiscoveryStrategy,
14    git_strategy: MockGitStrategy,
15    path_strategy: MockPathStrategy,
16}
17
18impl MockApiStrategy {
19    pub fn new() -> Self {
20        Self::default()
21    }
22}
23
24impl SupportsAlias for MockApiStrategy {
25    type Strategy = MockAliasStrategy;
26
27    fn get_alias_strategy(&self) -> &Self::Strategy {
28        &self.alias_strategy
29    }
30}
31
32impl SupportsDiscovery for MockApiStrategy {
33    type Strategy = MockDiscoveryStrategy;
34
35    fn get_discovery_strategy(&self) -> &Self::Strategy {
36        &self.discovery_strategy
37    }
38}
39
40impl SupportsGit for MockApiStrategy {
41    type Strategy = MockGitStrategy;
42
43    fn get_git_strategy(&self) -> &Self::Strategy {
44        &self.git_strategy
45    }
46}
47
48impl SupportsPath for MockApiStrategy {
49    type Strategy = MockPathStrategy;
50
51    fn get_path_strategy(&self) -> &Self::Strategy {
52        &self.path_strategy
53    }
54}