PageRenderTime 25ms CodeModel.GetById 0ms RepoModel.GetById 0ms app.codeStats 0ms

/Source/Machine.Specifications.Tests/Machine.Testing/AutoMocking/AutoMockingContainer.cs

https://github.com/machine/machine.specifications
C# | 54 lines | 45 code | 9 blank | 0 comment | 0 complexity | f375f7fce1ca688880e5f6062b4a191f MD5 | raw file
Possible License(s): MIT, CC-BY-SA-3.0
  1. using System;
  2. using System.Collections.Generic;
  3. using Machine.Container;
  4. using Machine.Container.Model;
  5. using Machine.Container.Services;
  6. using Machine.Container.Services.Impl;
  7. using Rhino.Mocks;
  8. namespace Machine.Testing.AutoMocking
  9. {
  10. [ObsoleteEx(Message = "Use FluentAssertions or Mocking library of choice directly", RemoveInVersion = "0.9", TreatAsErrorFromVersion = "0.8")]
  11. public class AutoMockingContainer : MachineContainer
  12. {
  13. private readonly MockingDependencyResolver _mockingDependencyResolver;
  14. public AutoMockingContainer(MockRepository mocks)
  15. : this(new MockingDependencyResolver(mocks))
  16. {
  17. }
  18. public AutoMockingContainer(MockingDependencyResolver mockingDependencyResolver)
  19. : base(new CompartmentalizedMachineContainer(new MockingDependencyResolverFactory(mockingDependencyResolver)))
  20. {
  21. _mockingDependencyResolver = mockingDependencyResolver;
  22. }
  23. public virtual TService Get<TService>()
  24. {
  25. return _mockingDependencyResolver.Get<TService>();
  26. }
  27. }
  28. [ObsoleteEx(Message = "Use FluentAssertions or Mocking library of choice directly", RemoveInVersion = "0.9", TreatAsErrorFromVersion = "0.8")]
  29. public class MockingDependencyResolverFactory : DefaultContainerInfrastructureFactory
  30. {
  31. private readonly MockingDependencyResolver _mockingDependencyResolver;
  32. public MockingDependencyResolverFactory(MockingDependencyResolver mockingDependencyResolver)
  33. {
  34. _mockingDependencyResolver = mockingDependencyResolver;
  35. }
  36. #region IContainerInfrastructureFactory Members
  37. public override IRootActivatorResolver CreateDependencyResolver()
  38. {
  39. IRootActivatorResolver resolver = base.CreateDependencyResolver();
  40. resolver.AddAfter(typeof(ActivatorStoreActivatorResolver), _mockingDependencyResolver);
  41. return resolver;
  42. }
  43. #endregion
  44. }
  45. }