private ViewController GetViewController(bool useAuthorizer)
        {
            _messageBus = new MessageBus();
            _viewFactory = Substitute.For<IViewFactory>();
            _viewPlacer = Substitute.For<IViewPlacer>();

            if (useAuthorizer)
            {
                _viewAuthorizer = Substitute.For<IViewAuthorizer>();
            }
            else
            {
                _viewAuthorizer = null;
            }

            return new ViewController(_messageBus, _viewFactory, _viewPlacer, _viewAuthorizer);
        }
 /// <summary>
 /// Constructor for ViewController which takes an optional <see cref="IViewAuthorizer"/>.
 /// </summary>
 /// <param name="messageBus">
 /// The <see cref="IMessageBus"/> which will be used to listen for view requests.
 /// </param>
 /// <param name="viewFactory">
 /// The <see cref="IViewFactory"/> which will be used to build the views.
 /// </param>
 /// <param name="viewPlacer">
 /// The <see cref="IViewPlacer"/> which will be used to place the views.
 /// </param>
 /// <param name="viewAuthorizer">
 /// The <see cref="IViewAuthorizer"/> which will be used to authorize views.
 /// </param>
 public ViewController(IMessageBus messageBus, IViewFactory viewFactory, IViewPlacer viewPlacer, IViewAuthorizer viewAuthorizer)
     : this(messageBus, viewFactory, viewPlacer)
 {
     ViewAuthorizer = viewAuthorizer;
 }