aboutsummaryrefslogtreecommitdiff
path: root/src/test_utils.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2023-08-05 23:14:06 +0200
committerHampusM <hampus@hampusmat.com>2023-08-05 23:14:06 +0200
commit89c238f9c82ade2d7656e2bee76838a391609a88 (patch)
tree8771a893a9c83b06715c3af0fa2da3cd206b0716 /src/test_utils.rs
parentddc666c55eec968f9a99408f3e3ad0f92d932179 (diff)
refactor!: remove IDependencyHistory
BREAKING CHANGE: IDependencyHistory has been removed as part of an effort to simplify the API. This affects IDIContainer, DIContainer, IAsyncDIContainer, AsyncDIContainer, Injectable, AsyncInjectable, BindingBuilder, AsyncBindingBuilder, BindingScopeConfigurator, BindingWhenConfigurator, AsyncBindingScopeConfigurator, AsyncBindingWhenConfigurator and DependencyHistory
Diffstat (limited to 'src/test_utils.rs')
-rw-r--r--src/test_utils.rs155
1 files changed, 57 insertions, 98 deletions
diff --git a/src/test_utils.rs b/src/test_utils.rs
index 78ad63b..2bc1671 100644
--- a/src/test_utils.rs
+++ b/src/test_utils.rs
@@ -7,12 +7,13 @@ pub mod subjects
use syrette_macros::declare_interface;
- use crate::dependency_history::IDependencyHistory;
use crate::di_container::blocking::IDIContainer;
use crate::interfaces::injectable::Injectable;
use crate::private::cast::CastFromArc;
use crate::ptr::TransientPtr;
+ use_dependency_history!();
+
pub trait IUserManager
{
fn add_user(&self, user_id: i128);
@@ -44,18 +45,17 @@ pub mod subjects
}
use crate as syrette;
+ use crate::util::use_dependency_history;
declare_interface!(UserManager -> IUserManager);
- impl<DIContainerType, DependencyHistoryType>
- Injectable<DIContainerType, DependencyHistoryType> for UserManager
+ impl<DIContainerType> Injectable<DIContainerType> for UserManager
where
- DIContainerType: IDIContainer<DependencyHistoryType>,
- DependencyHistoryType: IDependencyHistory,
+ DIContainerType: IDIContainer,
{
fn resolve(
_di_container: &Rc<DIContainerType>,
- _dependency_history: DependencyHistoryType,
+ _dependency_history: DependencyHistory,
) -> Result<TransientPtr<Self>, crate::errors::injectable::InjectableError>
where
Self: Sized,
@@ -115,15 +115,13 @@ pub mod subjects
declare_interface!(Number -> INumber);
- impl<DIContainerType, DependencyHistoryType>
- Injectable<DIContainerType, DependencyHistoryType> for Number
+ impl<DIContainerType> Injectable<DIContainerType> for Number
where
- DIContainerType: IDIContainer<DependencyHistoryType>,
- DependencyHistoryType: IDependencyHistory,
+ DIContainerType: IDIContainer,
{
fn resolve(
_di_container: &Rc<DIContainerType>,
- _dependency_history: DependencyHistoryType,
+ _dependency_history: DependencyHistory,
) -> Result<TransientPtr<Self>, crate::errors::injectable::InjectableError>
where
Self: Sized,
@@ -151,11 +149,12 @@ pub mod subjects_async
use async_trait::async_trait;
use syrette_macros::declare_interface;
- use crate::dependency_history::IDependencyHistory;
use crate::di_container::asynchronous::IAsyncDIContainer;
use crate::interfaces::async_injectable::AsyncInjectable;
use crate::ptr::TransientPtr;
+ use_dependency_history!();
+
pub trait IUserManager: Send + Sync
{
fn add_user(&self, user_id: i128);
@@ -187,19 +186,18 @@ pub mod subjects_async
}
use crate as syrette;
+ use crate::util::use_dependency_history;
declare_interface!(UserManager -> IUserManager);
#[async_trait]
- impl<DIContainerType, DependencyHistoryType>
- AsyncInjectable<DIContainerType, DependencyHistoryType> for UserManager
+ impl<DIContainerType> AsyncInjectable<DIContainerType> for UserManager
where
- DIContainerType: IAsyncDIContainer<DependencyHistoryType>,
- DependencyHistoryType: IDependencyHistory + Send + Sync + 'static,
+ DIContainerType: IAsyncDIContainer,
{
async fn resolve(
_: &Arc<DIContainerType>,
- _dependency_history: DependencyHistoryType,
+ _dependency_history: DependencyHistory,
) -> Result<TransientPtr<Self>, crate::errors::injectable::InjectableError>
where
Self: Sized,
@@ -260,15 +258,13 @@ pub mod subjects_async
declare_interface!(Number -> INumber, threadsafe_sharable = true);
#[async_trait]
- impl<DIContainerType, DependencyHistoryType>
- AsyncInjectable<DIContainerType, DependencyHistoryType> for Number
+ impl<DIContainerType> AsyncInjectable<DIContainerType> for Number
where
- DIContainerType: IAsyncDIContainer<DependencyHistoryType>,
- DependencyHistoryType: IDependencyHistory + Send + Sync + 'static,
+ DIContainerType: IAsyncDIContainer,
{
async fn resolve(
_: &Arc<DIContainerType>,
- _dependency_history: DependencyHistoryType,
+ _dependency_history: DependencyHistory,
) -> Result<TransientPtr<Self>, crate::errors::injectable::InjectableError>
where
Self: Sized,
@@ -290,27 +286,22 @@ pub mod mocks
use std::rc::Rc;
use super::*;
- use crate::dependency_history::IDependencyHistory;
use crate::di_container::blocking::binding::builder::BindingBuilder;
use crate::di_container::blocking::details::DIContainerInternals;
use crate::di_container::blocking::IDIContainer;
use crate::errors::di_container::DIContainerError;
use crate::provider::blocking::IProvider;
use crate::ptr::SomePtr;
+ use crate::util::use_dependency_history;
+
+ use_dependency_history!();
mock! {
- pub DIContainer<DependencyHistoryType>
- where
- DependencyHistoryType: IDependencyHistory + 'static
- {}
+ pub DIContainer {}
- impl<DependencyHistoryType> IDIContainer<DependencyHistoryType> for
- DIContainer<DependencyHistoryType>
- where
- DependencyHistoryType: IDependencyHistory + 'static
+ impl IDIContainer for DIContainer
{
- fn bind<Interface>(self: &mut Rc<Self>) ->
- BindingBuilder<Interface, Self, DependencyHistoryType>
+ fn bind<Interface>(self: &mut Rc<Self>) -> BindingBuilder<Interface, Self>
where
Interface: 'static + ?Sized;
@@ -328,18 +319,14 @@ pub mod mocks
#[doc(hidden)]
fn get_bound<Interface>(
self: &Rc<Self>,
- dependency_history: DependencyHistoryType,
+ dependency_history: DependencyHistory,
name: Option<&'static str>,
) -> Result<SomePtr<Interface>, DIContainerError>
where
Interface: 'static + ?Sized;
}
- impl<DependencyHistoryType> DIContainerInternals<
- DependencyHistoryType
- > for DIContainer<DependencyHistoryType>
- where
- DependencyHistoryType: IDependencyHistory
+ impl DIContainerInternals for DIContainer
{
fn has_binding<Interface>(self: &Rc<Self>, name: Option<&'static str>) -> bool
where
@@ -349,14 +336,14 @@ pub mod mocks
fn set_binding<Interface>(
self: &Rc<Self>,
name: Option<&'static str>,
- provider: Box<dyn IProvider<Self, DependencyHistoryType>>,
+ provider: Box<dyn IProvider<Self>>,
) where
Interface: 'static + ?Sized;
fn remove_binding<Interface>(
self: &Rc<Self>,
name: Option<&'static str>,
- ) -> Option<Box<dyn IProvider<Self, DependencyHistoryType>>>
+ ) -> Option<Box<dyn IProvider<Self>>>
where
Interface: 'static + ?Sized;
}
@@ -369,29 +356,24 @@ pub mod mocks
use std::sync::Arc;
use super::*;
- use crate::dependency_history::IDependencyHistory;
use crate::di_container::asynchronous::binding::builder::AsyncBindingBuilder;
use crate::di_container::asynchronous::details::DIContainerInternals;
use crate::di_container::asynchronous::IAsyncDIContainer;
use crate::errors::async_di_container::AsyncDIContainerError;
use crate::provider::r#async::IAsyncProvider;
use crate::ptr::SomePtr;
+ use crate::util::use_dependency_history;
+
+ use_dependency_history!();
mock! {
- pub AsyncDIContainer<DependencyHistoryType>
- where
- DependencyHistoryType: IDependencyHistory + 'static + Send + Sync
- {}
+ pub AsyncDIContainer {}
#[async_trait::async_trait]
- impl<DependencyHistoryType> IAsyncDIContainer<
- DependencyHistoryType
- > for AsyncDIContainer<DependencyHistoryType>
- where
- DependencyHistoryType: IDependencyHistory + 'static + Send + Sync
+ impl IAsyncDIContainer for AsyncDIContainer
{
fn bind<Interface>(self: &mut Arc<Self>) ->
- AsyncBindingBuilder<Interface, Self, DependencyHistoryType>
+ AsyncBindingBuilder<Interface, Self>
where
Interface: 'static + ?Sized + Send + Sync;
@@ -411,7 +393,7 @@ pub mod mocks
#[doc(hidden)]
async fn get_bound<Interface>(
self: &Arc<Self>,
- dependency_history: DependencyHistoryType,
+ dependency_history: DependencyHistory,
name: Option<&'static str>,
) -> Result<SomePtr<Interface>, AsyncDIContainerError>
where
@@ -419,11 +401,7 @@ pub mod mocks
}
#[async_trait::async_trait]
- impl<DependencyHistoryType> DIContainerInternals<
- DependencyHistoryType
- > for AsyncDIContainer<DependencyHistoryType>
- where
- DependencyHistoryType: IDependencyHistory + 'static + Send + Sync
+ impl DIContainerInternals for AsyncDIContainer
{
async fn has_binding<Interface>(
self: &Arc<Self>,
@@ -435,14 +413,14 @@ pub mod mocks
async fn set_binding<Interface>(
self: &Arc<Self>,
name: Option<&'static str>,
- provider: Box<dyn IAsyncProvider<Self, DependencyHistoryType>>,
+ provider: Box<dyn IAsyncProvider<Self>>,
) where
Interface: 'static + ?Sized;
async fn remove_binding<Interface>(
self: &Arc<Self>,
name: Option<&'static str>,
- ) -> Option<Box<dyn IAsyncProvider<Self, DependencyHistoryType>>>
+ ) -> Option<Box<dyn IAsyncProvider<Self>>>
where
Interface: 'static + ?Sized;
}
@@ -457,34 +435,31 @@ pub mod mocks
use async_trait::async_trait;
use super::*;
- use crate::dependency_history::IDependencyHistory;
use crate::di_container::asynchronous::IAsyncDIContainer;
use crate::errors::injectable::InjectableError;
use crate::provider::r#async::{AsyncProvidable, IAsyncProvider};
+ use crate::util::use_dependency_history;
+
+ use_dependency_history!();
mock! {
- pub AsyncProvider<
- DIContainerType: IAsyncDIContainer<DependencyHistoryType>,
- DependencyHistoryType: IDependencyHistory + Send + Sync
- > {}
+ pub AsyncProvider<DIContainerType: IAsyncDIContainer> {}
#[async_trait]
impl<
- DIContainerType: IAsyncDIContainer<DependencyHistoryType>,
- DependencyHistoryType: IDependencyHistory + Send + Sync
- > IAsyncProvider<DIContainerType, DependencyHistoryType> for AsyncProvider<
+ DIContainerType: IAsyncDIContainer,
+ > IAsyncProvider<DIContainerType> for AsyncProvider<
DIContainerType,
- DependencyHistoryType
>
{
async fn provide(
&self,
di_container: &Arc<DIContainerType>,
- dependency_history: DependencyHistoryType
- ) -> Result<AsyncProvidable<DIContainerType, DependencyHistoryType>, InjectableError>;
+ dependency_history: DependencyHistory
+ ) -> Result<AsyncProvidable<DIContainerType>, InjectableError>;
fn do_clone(&self) ->
- Box<dyn IAsyncProvider<DIContainerType, DependencyHistoryType>>;
+ Box<dyn IAsyncProvider<DIContainerType>>;
}
}
}
@@ -494,47 +469,31 @@ pub mod mocks
use std::rc::Rc;
use super::*;
- use crate::dependency_history::IDependencyHistory;
use crate::di_container::blocking::IDIContainer;
use crate::errors::injectable::InjectableError;
use crate::provider::blocking::{IProvider, Providable};
+ use crate::util::use_dependency_history;
+
+ use_dependency_history!();
mock! {
- pub Provider<DIContainerType, DependencyHistoryType>
+ pub Provider<DIContainerType>
where
- DIContainerType: IDIContainer<DependencyHistoryType>,
- DependencyHistoryType: IDependencyHistory,
+ DIContainerType: IDIContainer
{}
- impl<DIContainerType, DependencyHistoryType> IProvider<
- DIContainerType,
- DependencyHistoryType
- > for Provider<DIContainerType, DependencyHistoryType>
- where
- DIContainerType: IDIContainer<DependencyHistoryType>,
- DependencyHistoryType: IDependencyHistory
+ impl<DIContainerType> IProvider<DIContainerType> for Provider<DIContainerType>
+ where
+ DIContainerType: IDIContainer,
{
fn provide(
&self,
di_container: &Rc<DIContainerType>,
- dependency_history: DependencyHistoryType,
- ) -> Result<Providable<DIContainerType, DependencyHistoryType>, InjectableError>;
+ dependency_history: DependencyHistory,
+ ) -> Result<Providable<DIContainerType>, InjectableError>;
}
}
}
-
- mock! {
- pub DependencyHistory {}
-
- impl crate::dependency_history::IDependencyHistory for DependencyHistory
- {
- fn push<Dependency: 'static + ?Sized>(&mut self);
-
- fn contains<Dependency: 'static + ?Sized>(&self) -> bool;
- }
-
- impl crate::dependency_history::private::Sealed for DependencyHistory {}
- }
}
#[cfg(feature = "async")]