using System.Collections.Generic; using Caliburn.Configuration; using Caliburn.Events.Brokering; using Caliburn.Metadata; using Caliburn.Services; namespace Caliburn.Testability { public class TestConfiguration : IConfiguration { private IContainer _container; private IList _elementDefaults; private IEventBroker _eventBroker; private IPlatformCapabilities _platformCapabilities; private IPresenterManager _presenterManager; private IViewManager _viewManager; private ICompositeManager _compositeManager; private IModuleManager _moduleManager; private IShellState _shellState; public TestConfiguration() { _container = new FakeContainer(); _presenterManager = new StubPresenterManager(); _viewManager = new StubViewManager(); _eventBroker = new StubEventBroker(); _platformCapabilities = new StubPlatformCapabilities(); _elementDefaults = DefaultConfiguration.ElementDefaults; _compositeManager = new StubCompositeManager(); _moduleManager = new StubModuleManager(); _shellState = new StubStateManager(); } public IContainer Container { get { return _container; } set { _container = value; } } public IList ElementDefaults { get { return _elementDefaults; } set { _elementDefaults = value; } } public IEventBroker EventBroker { get { return _eventBroker; } set { _eventBroker = value; } } public IPlatformCapabilities PlatformCapabilities { get { return _platformCapabilities; } set { _platformCapabilities = value; } } public IPresenterManager PresenterManager { get { return _presenterManager; } set { _presenterManager = value; } } public IViewManager ViewManager { get { return _viewManager; } set { _viewManager = value; } } public IModuleManager ModuleManager { get { return _moduleManager; } set { _moduleManager = value; } } public ICompositeManager CompositeManager { get { return _compositeManager; } set { _compositeManager = value; } } public IShellState ShellState { get { return _shellState; } set { _shellState = value; } } public void Prepare() { FakeContainer container = _container as FakeContainer; if(container != null) { container.Register(typeof(IPresenterManager), _presenterManager); container.Register(typeof(IViewManager), _viewManager); container.Register(typeof(IPlatformCapabilities), _platformCapabilities); container.Register(typeof(IEventBroker), _eventBroker); container.Register(typeof(IModuleManager), _moduleManager); container.Register(typeof(IShellState), _shellState); container.Register(typeof(ICompositeManager), _compositeManager); } } #region IConfiguration Members public IContainer CreateContainer() { return _container; } public IList GetElementDefaults() { return _elementDefaults; } #endregion } }