Skip to content

Commit c4c984c

Browse files
committed
merge #21
2 parents dc39f2b + 5f2895b commit c4c984c

File tree

3 files changed

+79
-1
lines changed

3 files changed

+79
-1
lines changed

src/Ninject.MockingKernel.Moq.Test/DefaultMockRepositoryProviderTest.cs

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ public void CreatesMocksWithDefaultBehaviorByDefault()
3636
var mock = testee.Instance.Create<IDummyService>();
3737

3838
mock.Behavior.Should().Be(MockBehavior.Default);
39+
mock.CallBase.Should().Be(false);
40+
mock.DefaultValue.Should().Be(DefaultValue.Empty);
3941
}
4042

4143
[Fact]
@@ -48,6 +50,28 @@ public void CreatesMocksWithTheConfiguredMockBehavior()
4850
var mock = testee.Instance.Create<IDummyService>();
4951
mock.Behavior.Should().Be(MockBehavior.Strict);
5052
}
53+
54+
[Fact]
55+
public void CreatesMocksWithTheConfiguredCallBaseBehavior()
56+
{
57+
var settings = new NinjectSettings();
58+
settings.SetMockCallBase(true);
59+
var testee = new DefaultMockRepositoryProvider { Settings = settings };
60+
61+
var mock = testee.Instance.Create<IDummyService>();
62+
mock.CallBase.Should().Be(true);
63+
}
64+
65+
[Fact]
66+
public void CreatesMocksWithTheConfiguredDefaultReturnValue()
67+
{
68+
var settings = new NinjectSettings();
69+
settings.SetMockDefaultValue(DefaultValue.Mock);
70+
var testee = new DefaultMockRepositoryProvider { Settings = settings };
71+
72+
var mock = testee.Instance.Create<IDummyService>();
73+
mock.DefaultValue.Should().Be(DefaultValue.Mock);
74+
}
5175
}
5276
}
5377
#endif

src/Ninject.MockingKernel.Moq/DefaultMockRepositoryProvider.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,11 @@ public MockRepository Instance
4646
{
4747
if (this.instance == null)
4848
{
49-
this.instance = new MockRepository(this.Settings.GetMockBehavior());
49+
this.instance = new MockRepository(this.Settings.GetMockBehavior())
50+
{
51+
CallBase = this.Settings.GetMockCallBase(),
52+
DefaultValue = this.Settings.GetMockDefaultValue(),
53+
};
5054
}
5155

5256
return this.instance;

src/Ninject.MockingKernel.Moq/NinjectSettingsExtensions.cs

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,16 @@ public static class NinjectSettingsExtensions
2020
/// </summary>
2121
private const string MockBehaviorSettingsKey = "MockBehavior";
2222

23+
/// <summary>
24+
/// The key used to store the mock call base behavior in the ninject settings.
25+
/// </summary>
26+
private const string MockCallBase = "MockCallBase";
27+
28+
/// <summary>
29+
/// The key used to store the mock default return value in the ninject settings.
30+
/// </summary>
31+
private const string MockDefaultValue = "MockDefaultValue";
32+
2333
/// <summary>
2434
/// Sets the mock behavior.
2535
/// </summary>
@@ -39,5 +49,45 @@ public static MockBehavior GetMockBehavior(this INinjectSettings settings)
3949
{
4050
return settings.Get(MockBehaviorSettingsKey, MockBehavior.Default);
4151
}
52+
53+
/// <summary>
54+
/// Sets the mock call base behavior.
55+
/// </summary>
56+
/// <param name="settings">The ninject settings.</param>
57+
/// <param name="mockCallBase">The mock call base behavior.</param>
58+
public static void SetMockCallBase(this INinjectSettings settings, bool mockCallBase)
59+
{
60+
settings.Set(MockCallBase, mockCallBase);
61+
}
62+
63+
/// <summary>
64+
/// Gets the mock call base behavior.
65+
/// </summary>
66+
/// <param name="settings">The ninject settings.</param>
67+
/// <returns>The configured mock call base behavior.</returns>
68+
public static bool GetMockCallBase(this INinjectSettings settings)
69+
{
70+
return settings.Get(MockCallBase, false);
71+
}
72+
73+
/// <summary>
74+
/// Sets the mock default return value.
75+
/// </summary>
76+
/// <param name="settings">The ninject settings.</param>
77+
/// <param name="mockDefaultValue">The mock default return value.</param>
78+
public static void SetMockDefaultValue(this INinjectSettings settings, DefaultValue mockDefaultValue)
79+
{
80+
settings.Set(MockDefaultValue, mockDefaultValue);
81+
}
82+
83+
/// <summary>
84+
/// Gets the mock default return value.
85+
/// </summary>
86+
/// <param name="settings">The ninject settings.</param>
87+
/// <returns>The configured mock default return value.</returns>
88+
public static DefaultValue GetMockDefaultValue(this INinjectSettings settings)
89+
{
90+
return settings.Get(MockDefaultValue, DefaultValue.Empty);
91+
}
4292
}
4393
}

0 commit comments

Comments
 (0)