File tree Expand file tree Collapse file tree 2 files changed +26
-1
lines changed
Expand file tree Collapse file tree 2 files changed +26
-1
lines changed Original file line number Diff line number Diff line change @@ -65,5 +65,22 @@ public void It_allows_getting_mocked_object_when_overriden()
6565 Assert . IsNotNull ( @protected ) ;
6666 Assert . IsInstanceOfType ( @protected , typeof ( ProtectedConstructor1 ) ) ;
6767 }
68+
69+ [ TestMethod ]
70+ public void It_gets_mocked_object_via_iserviceprovider ( )
71+ {
72+ IServiceProvider mocker = new AutoMocker ( ) ;
73+ var service = mocker . GetService ( typeof ( Empty ) ) ;
74+ Assert . IsNotNull ( service ) ;
75+ Assert . IsInstanceOfType ( service , typeof ( Empty ) ) ;
76+ }
77+
78+ [ TestMethod ]
79+ public void It_returns_null_for_unmockable_object_via_iserviceprovider ( )
80+ {
81+ IServiceProvider mocker = new AutoMocker ( ) ;
82+ var service = mocker . GetService ( typeof ( string ) ) ;
83+ Assert . IsNull ( service ) ;
84+ }
6885 }
6986}
Original file line number Diff line number Diff line change @@ -18,7 +18,7 @@ namespace Moq.AutoMock
1818 /// <summary>
1919 /// An auto-mocking IoC container that generates mock objects using Moq.
2020 /// </summary>
21- public partial class AutoMocker
21+ public partial class AutoMocker : IServiceProvider
2222 {
2323 /// <summary>
2424 /// Initializes an instance of AutoMockers.
@@ -441,6 +441,14 @@ internal bool TryGet(
441441 return false ;
442442 }
443443
444+ /// <inheritdoc />
445+ object ? IServiceProvider . GetService ( Type serviceType )
446+ {
447+ return TryGet ( serviceType , new ObjectGraphContext ( false ) , out IInstance ? service )
448+ ? service . Value
449+ : null ;
450+ }
451+
444452 #endregion Get
445453
446454 #region GetMock
You can’t perform that action at this time.
0 commit comments