@@ -9,6 +9,57 @@ namespace AutofacContrib.NSubstitute.Tests
9
9
[ TestFixture ]
10
10
public class SubstituteForFixture
11
11
{
12
+ [ Test ]
13
+ public void ConfigureSubstitueFor ( )
14
+ {
15
+ using var mock = AutoSubstitute . Configure ( )
16
+ . SubstituteFor < Concrete1 > ( )
17
+ . ConfigureSubstitute ( ( c , ctx ) =>
18
+ {
19
+ var concrete2 = ctx . Resolve < Concrete2 > ( ) ;
20
+ c . Configure ( ) . Get ( ) . Returns ( concrete2 ) ;
21
+ } )
22
+ . SubstituteFor < Concrete2 > ( )
23
+ . ConfigureSubstitute ( ( c , ctx ) =>
24
+ {
25
+ var concrete3 = ctx . Resolve < Concrete3 > ( ) ;
26
+ c . Configure ( ) . Get ( ) . Returns ( concrete3 ) ;
27
+ } )
28
+ . SubstituteFor < Concrete3 > ( )
29
+ . Build ( ) ;
30
+
31
+ var result = mock . Resolve < ConcreteTest > ( ) . Get ( ) ;
32
+ var expected = mock . Resolve < Concrete3 > ( ) ;
33
+
34
+ Assert . AreSame ( expected , result ) ;
35
+ }
36
+
37
+ public abstract class Concrete1
38
+ {
39
+ public abstract Concrete2 Get ( ) ;
40
+ }
41
+
42
+ public abstract class Concrete2
43
+ {
44
+ public abstract Concrete3 Get ( ) ;
45
+ }
46
+
47
+ public abstract class Concrete3
48
+ {
49
+ }
50
+
51
+ public class ConcreteTest
52
+ {
53
+ private readonly Concrete2 _c2 ;
54
+
55
+ public ConcreteTest ( Concrete1 c1 )
56
+ {
57
+ _c2 = c1 . Get ( ) ;
58
+ }
59
+
60
+ public Concrete3 Get ( ) => _c2 . Get ( ) ;
61
+ }
62
+
12
63
[ Test ]
13
64
[ Obsolete ]
14
65
public void Example_test_with_substitute_for_concrete_obsolete ( )
0 commit comments