diff options
-rw-r--r-- | macros/src/declare_interface_args.rs | 14 | ||||
-rw-r--r-- | macros/src/factory/declare_default_args.rs | 23 | ||||
-rw-r--r-- | macros/src/factory/macro_args.rs | 8 | ||||
-rw-r--r-- | macros/src/factory/type_alias.rs | 8 | ||||
-rw-r--r-- | macros/src/fn_trait.rs | 9 | ||||
-rw-r--r-- | macros/src/injectable/implementation.rs | 49 | ||||
-rw-r--r-- | macros/src/injectable/macro_args.rs | 42 | ||||
-rw-r--r-- | src/di_container/asynchronous/binding/builder.rs | 39 | ||||
-rw-r--r-- | src/di_container/asynchronous/mod.rs | 74 | ||||
-rw-r--r-- | src/di_container/blocking/binding/builder.rs | 44 | ||||
-rw-r--r-- | src/di_container/blocking/mod.rs | 75 | ||||
-rw-r--r-- | src/provider/async.rs | 29 | ||||
-rw-r--r-- | src/provider/blocking.rs | 30 |
13 files changed, 199 insertions, 245 deletions
diff --git a/macros/src/declare_interface_args.rs b/macros/src/declare_interface_args.rs index fea6c7b..6556153 100644 --- a/macros/src/declare_interface_args.rs +++ b/macros/src/declare_interface_args.rs @@ -60,8 +60,6 @@ impl Parse for DeclareInterfaceArgs #[cfg(test)] mod tests { - use std::error::Error; - use proc_macro2::Span; use quote::{format_ident, quote}; use syn::{parse2, Lit, LitBool}; @@ -71,13 +69,13 @@ mod tests use crate::test_utils; #[test] - fn can_parse_with_no_flags() -> Result<(), Box<dyn Error>> + fn can_parse_with_no_flags() { let input_args = quote! { Foo -> IFoo }; - let decl_interface_args = parse2::<DeclareInterfaceArgs>(input_args)?; + let decl_interface_args = parse2::<DeclareInterfaceArgs>(input_args).unwrap(); assert_eq!( decl_interface_args.implementation, @@ -102,18 +100,16 @@ mod tests ); assert!(decl_interface_args.flags.is_empty()); - - Ok(()) } #[test] - fn can_parse_with_flags() -> Result<(), Box<dyn Error>> + fn can_parse_with_flags() { let input_args = quote! { Foobar -> IFoobar, threadsafe_sharable = true }; - let decl_interface_args = parse2::<DeclareInterfaceArgs>(input_args)?; + let decl_interface_args = parse2::<DeclareInterfaceArgs>(input_args).unwrap(); assert_eq!( decl_interface_args.implementation, @@ -147,8 +143,6 @@ mod tests ))) }]) ); - - Ok(()) } #[test] diff --git a/macros/src/factory/declare_default_args.rs b/macros/src/factory/declare_default_args.rs index f93d29d..9930f4f 100644 --- a/macros/src/factory/declare_default_args.rs +++ b/macros/src/factory/declare_default_args.rs @@ -57,8 +57,6 @@ impl Parse for DeclareDefaultFactoryMacroArgs #[cfg(test)] mod tests { - use std::error::Error; - use proc_macro2::Span; use quote::{format_ident, quote}; use syn::token::Dyn; @@ -80,13 +78,14 @@ mod tests use crate::macro_flag::MacroFlagValue; #[test] - fn can_parse_with_interface_only() -> Result<(), Box<dyn Error>> + fn can_parse_with_interface_only() { let input_args = quote! { dyn IFoo }; - let dec_def_fac_args = parse2::<DeclareDefaultFactoryMacroArgs>(input_args)?; + let dec_def_fac_args = + parse2::<DeclareDefaultFactoryMacroArgs>(input_args).unwrap(); assert_eq!( dec_def_fac_args.interface, @@ -108,18 +107,17 @@ mod tests ); assert!(dec_def_fac_args.flags.is_empty()); - - Ok(()) } #[test] - fn can_parse_with_interface_and_single_flag() -> Result<(), Box<dyn Error>> + fn can_parse_with_interface_and_single_flag() { let input_args = quote! { dyn IBar, threadsafe = true }; - let dec_def_fac_args = parse2::<DeclareDefaultFactoryMacroArgs>(input_args)?; + let dec_def_fac_args = + parse2::<DeclareDefaultFactoryMacroArgs>(input_args).unwrap(); assert_eq!( dec_def_fac_args.interface, @@ -150,18 +148,17 @@ mod tests ))) }]) ); - - Ok(()) } #[test] - fn can_parse_with_interface_and_multiple_flags() -> Result<(), Box<dyn Error>> + fn can_parse_with_interface_and_multiple_flags() { let input_args = quote! { dyn IBar, threadsafe = true, async = false }; - let dec_def_fac_args = parse2::<DeclareDefaultFactoryMacroArgs>(input_args)?; + let dec_def_fac_args = + parse2::<DeclareDefaultFactoryMacroArgs>(input_args).unwrap(); assert_eq!( dec_def_fac_args.interface, @@ -201,8 +198,6 @@ mod tests } ]) ); - - Ok(()) } #[test] diff --git a/macros/src/factory/macro_args.rs b/macros/src/factory/macro_args.rs index 76b29a2..676b412 100644 --- a/macros/src/factory/macro_args.rs +++ b/macros/src/factory/macro_args.rs @@ -46,8 +46,6 @@ impl Parse for FactoryMacroArgs #[cfg(test)] mod tests { - use std::error::Error; - use proc_macro2::Span; use quote::{format_ident, quote}; use syn::{parse2, Lit, LitBool}; @@ -56,13 +54,13 @@ mod tests use crate::macro_flag::MacroFlagValue; #[test] - fn can_parse_with_single_flag() -> Result<(), Box<dyn Error>> + fn can_parse_with_single_flag() { let input_args = quote! { threadsafe = true }; - let factory_macro_args = parse2::<FactoryMacroArgs>(input_args)?; + let factory_macro_args = parse2::<FactoryMacroArgs>(input_args).unwrap(); assert_eq!( factory_macro_args.flags, @@ -74,8 +72,6 @@ mod tests ))) }]) ); - - Ok(()) } #[test] diff --git a/macros/src/factory/type_alias.rs b/macros/src/factory/type_alias.rs index fafcd54..cfa254f 100644 --- a/macros/src/factory/type_alias.rs +++ b/macros/src/factory/type_alias.rs @@ -31,8 +31,6 @@ impl Parse for FactoryTypeAlias #[cfg(test)] mod tests { - use std::error::Error; - use quote::{format_ident, quote}; use syn::punctuated::Punctuated; use syn::token::And; @@ -42,13 +40,13 @@ mod tests use crate::test_utils; #[test] - fn can_parse() -> Result<(), Box<dyn Error>> + fn can_parse() { let input_args = quote! { type FooFactory = dyn Fn(String, &u32) -> Foo; }; - let factory_type_alias = parse2::<FactoryTypeAlias>(input_args)?; + let factory_type_alias = parse2::<FactoryTypeAlias>(input_args).unwrap(); assert_eq!( factory_type_alias.factory_interface.inputs, @@ -66,7 +64,5 @@ mod tests }) ]) ); - - Ok(()) } } diff --git a/macros/src/fn_trait.rs b/macros/src/fn_trait.rs index 31d7d95..0858cca 100644 --- a/macros/src/fn_trait.rs +++ b/macros/src/fn_trait.rs @@ -88,8 +88,6 @@ impl ToTokens for FnTrait #[cfg(test)] mod tests { - use std::error::Error; - use quote::{format_ident, quote}; use syn::token::{Dyn, RArrow}; use syn::{parse2, PathSegment}; @@ -98,12 +96,13 @@ mod tests use crate::test_utils; #[test] - fn can_parse_fn_trait() -> Result<(), Box<dyn Error>> + fn can_parse_fn_trait() { assert_eq!( parse2::<FnTrait>(quote! { dyn Fn(String, u32) -> Handle - })?, + }) + .unwrap(), FnTrait { dyn_token: Dyn::default(), trait_ident: format_ident!("Fn"), @@ -128,8 +127,6 @@ mod tests Fn(u32) -> Handle }) .is_err()); - - Ok(()) } #[test] diff --git a/macros/src/injectable/implementation.rs b/macros/src/injectable/implementation.rs index b3e57c2..74a907e 100644 --- a/macros/src/injectable/implementation.rs +++ b/macros/src/injectable/implementation.rs @@ -870,7 +870,7 @@ mod tests } #[test] - fn can_create_single_get_dep_method_call() -> Result<(), Box<dyn Error>> + fn can_create_single_get_dep_method_call() { let mut mock_dependency = MockIDependency::new(); @@ -893,10 +893,11 @@ mod tests InjectableImpl::<MockIDependency>::create_single_get_dep_method_call( &mock_dependency, false, - )?; + ) + .unwrap(); assert_eq!( - parse2::<Expr>(output)?, + parse2::<Expr>(output).unwrap(), parse2::<Expr>(quote! { #di_container_var_ident .get_bound::<Foo>( @@ -912,14 +913,13 @@ mod tests reason: err, dependency_name: "Foo" })? - })? + }) + .unwrap() ); - - Ok(()) } #[test] - fn can_create_single_get_dep_method_call_with_name() -> Result<(), Box<dyn Error>> + fn can_create_single_get_dep_method_call_with_name() { let mut mock_dependency = MockIDependency::new(); @@ -944,10 +944,11 @@ mod tests InjectableImpl::<MockIDependency>::create_single_get_dep_method_call( &mock_dependency, false, - )?; + ) + .unwrap(); assert_eq!( - parse2::<Expr>(output)?, + parse2::<Expr>(output).unwrap(), parse2::<Expr>(quote! { #di_container_var_ident .get_bound::<Foo>( @@ -963,14 +964,13 @@ mod tests reason: err, dependency_name: "Foo" })? - })? + }) + .unwrap() ); - - Ok(()) } #[test] - fn can_create_single_get_dep_method_call_async() -> Result<(), Box<dyn Error>> + fn can_create_single_get_dep_method_call_async() { let mut mock_dependency = MockIDependency::new(); @@ -993,10 +993,11 @@ mod tests InjectableImpl::<MockIDependency>::create_single_get_dep_method_call( &mock_dependency, true, - )?; + ) + .unwrap(); assert_eq!( - parse2::<Expr>(output)?, + parse2::<Expr>(output).unwrap(), parse2::<Expr>(quote! { #di_container_var_ident .get_bound::<Foo>( @@ -1013,15 +1014,13 @@ mod tests reason: err, dependency_name: "Foo" })? - })? + }) + .unwrap() ); - - Ok(()) } #[test] - fn can_create_single_get_dep_method_call_async_with_name( - ) -> Result<(), Box<dyn Error>> + fn can_create_single_get_dep_method_call_async_with_name() { let mut mock_dependency = MockIDependency::new(); @@ -1046,10 +1045,11 @@ mod tests InjectableImpl::<MockIDependency>::create_single_get_dep_method_call( &mock_dependency, true, - )?; + ) + .unwrap(); assert_eq!( - parse2::<Expr>(output)?, + parse2::<Expr>(output).unwrap(), parse2::<Expr>(quote! { #di_container_var_ident .get_bound::<Foo>( @@ -1066,9 +1066,8 @@ mod tests reason: err, dependency_name: "Foo" })? - })? + }) + .unwrap() ); - - Ok(()) } } diff --git a/macros/src/injectable/macro_args.rs b/macros/src/injectable/macro_args.rs index ee398fc..719d551 100644 --- a/macros/src/injectable/macro_args.rs +++ b/macros/src/injectable/macro_args.rs @@ -111,8 +111,6 @@ pub enum InjectableMacroArgsError #[cfg(test)] mod tests { - use std::error::Error; - use proc_macro2::Span; use quote::{format_ident, quote}; use syn::{parse2, Lit, LitBool}; @@ -122,13 +120,13 @@ mod tests use crate::test_utils; #[test] - fn can_parse_with_only_interface() -> Result<(), Box<dyn Error>> + fn can_parse_with_only_interface() { let input_args = quote! { IFoo }; - let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args)?; + let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args).unwrap(); assert!(matches!(injectable_macro_args.interface, Some(interface) if interface == TypePath { @@ -140,31 +138,27 @@ mod tests )); assert!(injectable_macro_args.flags.is_empty()); - - Ok(()) } #[test] - fn can_parse_with_nothing() -> Result<(), Box<dyn Error>> + fn can_parse_with_nothing() { let input_args = quote! {}; - let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args)?; + let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args).unwrap(); assert!(injectable_macro_args.interface.is_none()); assert!(injectable_macro_args.flags.is_empty()); - - Ok(()) } #[test] - fn can_parse_with_interface_and_flags() -> Result<(), Box<dyn Error>> + fn can_parse_with_interface_and_flags() { let input_args = quote! { IFoo, no_doc_hidden = true, async = false }; - let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args)?; + let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args).unwrap(); assert!(matches!(injectable_macro_args.interface, Some(interface) if interface == TypePath { @@ -194,18 +188,16 @@ mod tests } ]) ); - - Ok(()) } #[test] - fn can_parse_with_flags_only() -> Result<(), Box<dyn Error>> + fn can_parse_with_flags_only() { let input_args = quote! { async = false, no_declare_concrete_interface = false }; - let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args)?; + let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args).unwrap(); assert!(injectable_macro_args.interface.is_none()); @@ -228,8 +220,6 @@ mod tests } ]) ); - - Ok(()) } #[test] @@ -257,34 +247,32 @@ mod tests } #[test] - fn check_flags_fail_with_unknown_flag() -> Result<(), Box<dyn Error>> + fn check_flags_fail_with_unknown_flag() { let input_args = quote! { IFoo, haha = true, async = false }; - let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args)?; + let injectable_macro_args = parse2::<InjectableMacroArgs>(input_args).unwrap(); assert!(injectable_macro_args.check_flags().is_err()); - - Ok(()) } #[test] - fn check_flags_fail_with_duplicate_flag() -> Result<(), Box<dyn Error>> + fn check_flags_fail_with_duplicate_flag() { let macro_args = parse2::<InjectableMacroArgs>(quote! { IFoo, async = false, no_doc_hidden = true, async = false - })?; + }) + .unwrap(); assert!(macro_args.check_flags().is_err()); let macro_args_two = parse2::<InjectableMacroArgs>(quote! { IFoo, async = true , no_doc_hidden = true, async = false - })?; + }) + .unwrap(); assert!(macro_args_two.check_flags().is_err()); - - Ok(()) } } diff --git a/src/di_container/asynchronous/binding/builder.rs b/src/di_container/asynchronous/binding/builder.rs index acb1c69..db73ad2 100644 --- a/src/di_container/asynchronous/binding/builder.rs +++ b/src/di_container/asynchronous/binding/builder.rs @@ -502,8 +502,6 @@ where #[cfg(test)] mod tests { - use std::error::Error; - use mockall::predicate::eq; use super::*; @@ -512,7 +510,7 @@ mod tests use crate::test_utils::subjects_async; #[tokio::test] - async fn can_bind_to() -> Result<(), Box<dyn Error>> + async fn can_bind_to() { let mut di_container_mock = MockAsyncDIContainer::new(); @@ -534,14 +532,15 @@ mod tests MockDependencyHistory::new, ); - binding_builder.to::<subjects_async::UserManager>().await?; - - Ok(()) + binding_builder + .to::<subjects_async::UserManager>() + .await + .unwrap(); } #[tokio::test] #[cfg(feature = "factory")] - async fn can_bind_to_factory() -> Result<(), Box<dyn Error>> + async fn can_bind_to_factory() { use crate as syrette; use crate::factory; @@ -584,14 +583,13 @@ mod tests user_manager }) }) - .await?; - - Ok(()) + .await + .unwrap(); } #[tokio::test] #[cfg(feature = "factory")] - async fn can_bind_to_async_factory() -> Result<(), Box<dyn Error>> + async fn can_bind_to_async_factory() { use crate::future::BoxFuture; use crate::ptr::TransientPtr; @@ -633,14 +631,13 @@ mod tests user_manager }) }) - .await?; - - Ok(()) + .await + .unwrap(); } #[tokio::test] #[cfg(feature = "factory")] - async fn can_bind_to_default_factory() -> Result<(), Box<dyn Error>> + async fn can_bind_to_default_factory() { use syrette_macros::declare_default_factory; @@ -678,14 +675,13 @@ mod tests user_manager }) }) - .await?; - - Ok(()) + .await + .unwrap(); } #[tokio::test] #[cfg(feature = "factory")] - async fn can_bind_to_async_default_factory() -> Result<(), Box<dyn Error>> + async fn can_bind_to_async_default_factory() { use syrette_macros::declare_default_factory; @@ -724,8 +720,7 @@ mod tests user_manager }) }) - .await?; - - Ok(()) + .await + .unwrap(); } } diff --git a/src/di_container/asynchronous/mod.rs b/src/di_container/asynchronous/mod.rs index 929e2c0..13d4df0 100644 --- a/src/di_container/asynchronous/mod.rs +++ b/src/di_container/asynchronous/mod.rs @@ -496,15 +496,13 @@ impl AsyncDIContainer #[cfg(test)] mod tests { - use std::error::Error; - use super::*; use crate::ptr::{ThreadsafeSingletonPtr, TransientPtr}; use crate::test_utils::mocks::async_provider::MockAsyncProvider; use crate::test_utils::subjects_async; #[tokio::test] - async fn can_get() -> Result<(), Box<dyn Error>> + async fn can_get() { let di_container = AsyncDIContainer::new(); @@ -535,14 +533,14 @@ mod tests di_container .get::<dyn subjects_async::IUserManager>() - .await? - .transient()?; - - Ok(()) + .await + .unwrap() + .transient() + .unwrap(); } #[tokio::test] - async fn can_get_named() -> Result<(), Box<dyn Error>> + async fn can_get_named() { let di_container = AsyncDIContainer::new(); @@ -573,14 +571,14 @@ mod tests di_container .get_named::<dyn subjects_async::IUserManager>("special") - .await? - .transient()?; - - Ok(()) + .await + .unwrap() + .transient() + .unwrap(); } #[tokio::test] - async fn can_get_singleton() -> Result<(), Box<dyn Error>> + async fn can_get_singleton() { let di_container = AsyncDIContainer::new(); @@ -615,23 +613,25 @@ mod tests let first_number_rc = di_container .get::<dyn subjects_async::INumber>() - .await? - .threadsafe_singleton()?; + .await + .unwrap() + .threadsafe_singleton() + .unwrap(); assert_eq!(first_number_rc.get(), 2820); let second_number_rc = di_container .get::<dyn subjects_async::INumber>() - .await? - .threadsafe_singleton()?; + .await + .unwrap() + .threadsafe_singleton() + .unwrap(); assert_eq!(first_number_rc.as_ref(), second_number_rc.as_ref()); - - Ok(()) } #[tokio::test] - async fn can_get_singleton_named() -> Result<(), Box<dyn Error>> + async fn can_get_singleton_named() { let di_container = AsyncDIContainer::new(); @@ -666,24 +666,26 @@ mod tests let first_number_rc = di_container .get_named::<dyn subjects_async::INumber>("cool") - .await? - .threadsafe_singleton()?; + .await + .unwrap() + .threadsafe_singleton() + .unwrap(); assert_eq!(first_number_rc.get(), 2820); let second_number_rc = di_container .get_named::<dyn subjects_async::INumber>("cool") - .await? - .threadsafe_singleton()?; + .await + .unwrap() + .threadsafe_singleton() + .unwrap(); assert_eq!(first_number_rc.as_ref(), second_number_rc.as_ref()); - - Ok(()) } #[tokio::test] #[cfg(feature = "factory")] - async fn can_get_factory() -> Result<(), Box<dyn Error>> + async fn can_get_factory() { trait IUserManager: Send + Sync { @@ -761,15 +763,15 @@ mod tests di_container .get::<IUserManagerFactory>() - .await? - .threadsafe_factory()?; - - Ok(()) + .await + .unwrap() + .threadsafe_factory() + .unwrap(); } #[tokio::test] #[cfg(feature = "factory")] - async fn can_get_factory_named() -> Result<(), Box<dyn Error>> + async fn can_get_factory_named() { trait IUserManager: Send + Sync { @@ -852,10 +854,10 @@ mod tests di_container .get_named::<IUserManagerFactory>("special") - .await? - .threadsafe_factory()?; - - Ok(()) + .await + .unwrap() + .threadsafe_factory() + .unwrap(); } #[tokio::test] diff --git a/src/di_container/blocking/binding/builder.rs b/src/di_container/blocking/binding/builder.rs index 6f873d0..cd547d4 100644 --- a/src/di_container/blocking/binding/builder.rs +++ b/src/di_container/blocking/binding/builder.rs @@ -299,8 +299,6 @@ where #[cfg(test)] mod tests { - use std::error::Error; - use mockall::predicate::eq; use super::*; @@ -309,7 +307,7 @@ mod tests use crate::test_utils::subjects; #[test] - fn can_bind_to() -> Result<(), Box<dyn Error>> + fn can_bind_to() { let mut mock_di_container = MockDIContainer::new(); @@ -330,14 +328,12 @@ mod tests MockDependencyHistory::new, ); - binding_builder.to::<subjects::Number>()?; - - Ok(()) + binding_builder.to::<subjects::Number>().unwrap(); } #[test] #[cfg(feature = "factory")] - fn can_bind_to_factory() -> Result<(), Box<dyn Error>> + fn can_bind_to_factory() { use crate as syrette; use crate::factory; @@ -366,21 +362,21 @@ mod tests MockDependencyHistory::new, ); - binding_builder.to_factory(&|_| { - Box::new(move |_num, _text| { - let user_manager: TransientPtr<dyn subjects::IUserManager> = - TransientPtr::new(subjects::UserManager::new()); + binding_builder + .to_factory(&|_| { + Box::new(move |_num, _text| { + let user_manager: TransientPtr<dyn subjects::IUserManager> = + TransientPtr::new(subjects::UserManager::new()); - user_manager + user_manager + }) }) - })?; - - Ok(()) + .unwrap(); } #[test] #[cfg(feature = "factory")] - fn can_bind_to_default_factory() -> Result<(), Box<dyn Error>> + fn can_bind_to_default_factory() { use syrette_macros::declare_default_factory; @@ -408,15 +404,15 @@ mod tests MockDependencyHistory::new, ); - binding_builder.to_default_factory(&|_| { - Box::new(move || { - let user_manager: TransientPtr<dyn subjects::IUserManager> = - TransientPtr::new(subjects::UserManager::new()); + binding_builder + .to_default_factory(&|_| { + Box::new(move || { + let user_manager: TransientPtr<dyn subjects::IUserManager> = + TransientPtr::new(subjects::UserManager::new()); - user_manager + user_manager + }) }) - })?; - - Ok(()) + .unwrap(); } } diff --git a/src/di_container/blocking/mod.rs b/src/di_container/blocking/mod.rs index df6e68c..ce3edca 100644 --- a/src/di_container/blocking/mod.rs +++ b/src/di_container/blocking/mod.rs @@ -388,15 +388,13 @@ impl DIContainer #[cfg(test)] mod tests { - use std::error::Error; - use super::*; use crate::provider::blocking::MockIProvider; use crate::ptr::{SingletonPtr, TransientPtr}; use crate::test_utils::subjects; #[test] - fn can_get() -> Result<(), Box<dyn Error>> + fn can_get() { let di_container = DIContainer::new(); @@ -417,14 +415,14 @@ mod tests ); di_container - .get::<dyn subjects::IUserManager>()? - .transient()?; - - Ok(()) + .get::<dyn subjects::IUserManager>() + .unwrap() + .transient() + .unwrap(); } #[test] - fn can_get_named() -> Result<(), Box<dyn Error>> + fn can_get_named() { let di_container = DIContainer::new(); @@ -445,14 +443,14 @@ mod tests ); di_container - .get_named::<dyn subjects::IUserManager>("special")? - .transient()?; - - Ok(()) + .get_named::<dyn subjects::IUserManager>("special") + .unwrap() + .transient() + .unwrap(); } #[test] - fn can_get_singleton() -> Result<(), Box<dyn Error>> + fn can_get_singleton() { let di_container = DIContainer::new(); @@ -471,20 +469,25 @@ mod tests .borrow_mut() .set::<dyn subjects::INumber>(BindingOptions::new(), Box::new(mock_provider)); - let first_number_rc = di_container.get::<dyn subjects::INumber>()?.singleton()?; + let first_number_rc = di_container + .get::<dyn subjects::INumber>() + .unwrap() + .singleton() + .unwrap(); assert_eq!(first_number_rc.get(), 2820); - let second_number_rc = - di_container.get::<dyn subjects::INumber>()?.singleton()?; + let second_number_rc = di_container + .get::<dyn subjects::INumber>() + .unwrap() + .singleton() + .unwrap(); assert_eq!(first_number_rc.as_ref(), second_number_rc.as_ref()); - - Ok(()) } #[test] - fn can_get_singleton_named() -> Result<(), Box<dyn Error>> + fn can_get_singleton_named() { let di_container = DIContainer::new(); @@ -507,23 +510,25 @@ mod tests ); let first_number_rc = di_container - .get_named::<dyn subjects::INumber>("cool")? - .singleton()?; + .get_named::<dyn subjects::INumber>("cool") + .unwrap() + .singleton() + .unwrap(); assert_eq!(first_number_rc.get(), 2820); let second_number_rc = di_container - .get_named::<dyn subjects::INumber>("cool")? - .singleton()?; + .get_named::<dyn subjects::INumber>("cool") + .unwrap() + .singleton() + .unwrap(); assert_eq!(first_number_rc.as_ref(), second_number_rc.as_ref()); - - Ok(()) } #[test] #[cfg(feature = "factory")] - fn can_get_factory() -> Result<(), Box<dyn Error>> + fn can_get_factory() { use crate::private::castable_factory::CastableFactory; use crate::ptr::FactoryPtr; @@ -593,14 +598,16 @@ mod tests .borrow_mut() .set::<IUserManagerFactory>(BindingOptions::new(), Box::new(mock_provider)); - di_container.get::<IUserManagerFactory>()?.factory()?; - - Ok(()) + di_container + .get::<IUserManagerFactory>() + .unwrap() + .factory() + .unwrap(); } #[test] #[cfg(feature = "factory")] - fn can_get_factory_named() -> Result<(), Box<dyn Error>> + fn can_get_factory_named() { use crate::private::castable_factory::CastableFactory; use crate::ptr::FactoryPtr; @@ -674,10 +681,10 @@ mod tests ); di_container - .get_named::<IUserManagerFactory>("special")? - .factory()?; - - Ok(()) + .get_named::<IUserManagerFactory>("special") + .unwrap() + .factory() + .unwrap(); } #[test] diff --git a/src/provider/async.rs b/src/provider/async.rs index 2bf7be1..a3db57e 100644 --- a/src/provider/async.rs +++ b/src/provider/async.rs @@ -252,15 +252,13 @@ impl Clone for AsyncFactoryProvider #[cfg(test)] mod tests { - use std::error::Error; - use super::*; use crate::dependency_history::MockDependencyHistory; use crate::di_container::asynchronous::MockAsyncDIContainer; use crate::test_utils::subjects_async; #[tokio::test] - async fn async_transient_type_provider_works() -> Result<(), Box<dyn Error>> + async fn async_transient_type_provider_works() { let transient_type_provider = AsyncTransientTypeProvider::< subjects_async::UserManager, @@ -273,17 +271,16 @@ mod tests matches!( transient_type_provider .provide(&di_container, MockDependencyHistory::new()) - .await?, + .await + .unwrap(), AsyncProvidable::Transient(_) ), "The provided type is not transient" ); - - Ok(()) } #[tokio::test] - async fn async_singleton_provider_works() -> Result<(), Box<dyn Error>> + async fn async_singleton_provider_works() { let singleton_provider = AsyncSingletonProvider::< subjects_async::UserManager, @@ -298,18 +295,17 @@ mod tests matches!( singleton_provider .provide(&di_container, MockDependencyHistory::new()) - .await?, + .await + .unwrap(), AsyncProvidable::Singleton(_) ), "The provided type is not a singleton" ); - - Ok(()) } #[tokio::test] #[cfg(feature = "factory")] - async fn async_factory_provider_works() -> Result<(), Box<dyn Error>> + async fn async_factory_provider_works() { use crate::private::any_factory::AnyThreadsafeFactory; use crate::ptr::ThreadsafeFactoryPtr; @@ -340,7 +336,8 @@ mod tests matches!( factory_provider .provide(&di_container, MockDependencyHistory::new()) - .await?, + .await + .unwrap(), AsyncProvidable::Factory(_) ), "The provided type is not a factory" @@ -350,7 +347,8 @@ mod tests matches!( default_factory_provider .provide(&di_container, MockDependencyHistory::new()) - .await?, + .await + .unwrap(), AsyncProvidable::DefaultFactory(_) ), "The provided type is not a default factory" @@ -360,12 +358,11 @@ mod tests matches!( async_default_factory_provider .provide(&di_container, MockDependencyHistory::new()) - .await?, + .await + .unwrap(), AsyncProvidable::AsyncDefaultFactory(_) ), "The provided type is not a async default factory" ); - - Ok(()) } } diff --git a/src/provider/blocking.rs b/src/provider/blocking.rs index 1533f68..5710a65 100644 --- a/src/provider/blocking.rs +++ b/src/provider/blocking.rs @@ -147,15 +147,13 @@ impl<DIContainerType> IProvider<DIContainerType> for FactoryProvider #[cfg(test)] mod tests { - use std::error::Error; - use super::*; use crate::dependency_history::MockDependencyHistory; use crate::di_container::blocking::MockDIContainer; use crate::test_utils::subjects; #[test] - fn transient_type_provider_works() -> Result<(), Box<dyn Error>> + fn transient_type_provider_works() { let transient_type_provider = TransientTypeProvider::<subjects::UserManager, MockDIContainer>::new(); @@ -166,18 +164,15 @@ mod tests assert!( matches!( - transient_type_provider - .provide(&di_container, dependency_history_mock)?, - Providable::Transient(_) + transient_type_provider.provide(&di_container, dependency_history_mock), + Ok(Providable::Transient(_)) ), "The provided type is not transient" ); - - Ok(()) } #[test] - fn singleton_provider_works() -> Result<(), Box<dyn Error>> + fn singleton_provider_works() { let singleton_provider = SingletonProvider::<subjects::UserManager, MockDIContainer>::new( @@ -189,18 +184,17 @@ mod tests assert!( matches!( singleton_provider - .provide(&di_container, MockDependencyHistory::new())?, + .provide(&di_container, MockDependencyHistory::new()) + .unwrap(), Providable::Singleton(_) ), "The provided type is not a singleton" ); - - Ok(()) } #[test] #[cfg(feature = "factory")] - fn factory_provider_works() -> Result<(), Box<dyn Error>> + fn factory_provider_works() { use crate::private::any_factory::AnyFactory; use crate::ptr::FactoryPtr; @@ -218,8 +212,8 @@ mod tests assert!( matches!( - factory_provider.provide(&di_container, MockDependencyHistory::new())?, - Providable::Factory(_) + factory_provider.provide(&di_container, MockDependencyHistory::new()), + Ok(Providable::Factory(_)) ), "The provided type is not a factory" ); @@ -227,12 +221,10 @@ mod tests assert!( matches!( default_factory_provider - .provide(&di_container, MockDependencyHistory::new())?, - Providable::DefaultFactory(_) + .provide(&di_container, MockDependencyHistory::new()), + Ok(Providable::DefaultFactory(_)) ), "The provided type is not a default factory" ); - - Ok(()) } } |