1
0
mirror of https://github.com/Radarr/Radarr.git synced 2024-11-04 10:02:40 +01:00

Added default mock behavior to automocker

This commit is contained in:
kay.one 2011-04-22 12:15:47 -07:00
parent fd32a04d45
commit ccbbad54ce
2 changed files with 22 additions and 8 deletions

View File

@ -14,6 +14,7 @@ namespace AutoMoq
{ {
public class AutoMoqer public class AutoMoqer
{ {
internal readonly MockBehavior DefaultBehavior = MockBehavior.Default;
internal Type ResolveType; internal Type ResolveType;
private IUnityContainer container; private IUnityContainer container;
private IDictionary<Type, object> registeredMocks; private IDictionary<Type, object> registeredMocks;
@ -23,6 +24,13 @@ public AutoMoqer()
SetupAutoMoqer(new UnityContainer()); SetupAutoMoqer(new UnityContainer());
} }
public AutoMoqer(MockBehavior defaultBehavior)
{
DefaultBehavior = defaultBehavior;
SetupAutoMoqer(new UnityContainer());
}
internal AutoMoqer(IUnityContainer container) internal AutoMoqer(IUnityContainer container)
{ {
SetupAutoMoqer(container); SetupAutoMoqer(container);
@ -37,7 +45,12 @@ public virtual T Resolve<T>()
return result; return result;
} }
public virtual Mock<T> GetMock<T>(MockBehavior behavior = MockBehavior.Default) where T : class public virtual Mock<T> GetMock<T>() where T : class
{
return GetMock<T>(DefaultBehavior);
}
public virtual Mock<T> GetMock<T>(MockBehavior behavior) where T : class
{ {
ResolveType = null; ResolveType = null;
var type = GetTheMockType<T>(); var type = GetTheMockType<T>();
@ -112,10 +125,10 @@ public void VerifyAllMocks()
private void SetupAutoMoqer(IUnityContainer container) private void SetupAutoMoqer(IUnityContainer container)
{ {
this.container = container; this.container = container;
registeredMocks = new Dictionary<Type, object>();
AddTheAutoMockingContainerExtensionToTheContainer(container);
container.RegisterInstance(this); container.RegisterInstance(this);
registeredMocks = new Dictionary<Type, object>();
AddTheAutoMockingContainerExtensionToTheContainer(container);
} }
private static void AddTheAutoMockingContainerExtensionToTheContainer(IUnityContainer container) private static void AddTheAutoMockingContainerExtensionToTheContainer(IUnityContainer container)

View File

@ -16,7 +16,8 @@ internal class AutoMockingBuilderStrategy : BuilderStrategy
public AutoMockingBuilderStrategy(IEnumerable<Type> registeredTypes, IUnityContainer container) public AutoMockingBuilderStrategy(IEnumerable<Type> registeredTypes, IUnityContainer container)
{ {
mockFactory = new MockFactory(MockBehavior.Loose); var autoMoqer = container.Resolve<AutoMoqer>();
mockFactory = new MockFactory(autoMoqer.DefaultBehavior);
this.registeredTypes = registeredTypes; this.registeredTypes = registeredTypes;
this.container = container; this.container = container;
} }