static void Verify_HandleAddWorkSurfaceMessage_ShowDebugWindowOnLoad(bool showDebugWindowOnLoad)
{
//------------Setup for test--------------------------
var eventAggregator = new Mock<IEventAggregator>();
var envRepo = new Mock<IEnvironmentRepository>();
envRepo.Setup(e => e.All()).Returns(new List<IEnvironmentModel>());
var environmentModel = new Mock<IEnvironmentModel>().Object;
envRepo.Setup(e => e.Source).Returns(environmentModel);
envRepo.Setup(e => e.Source.IsConnected).Returns(false);
envRepo.Setup(e => e.Source.Connection.IsConnected).Returns(false);
var vm = new MainViewModel(eventAggregator.Object, new TestAsyncWorker(), envRepo.Object, new Mock<IVersionChecker>().Object, false, new Mock<IBrowserPopupController>().Object);
var workSurfaceContextViewModel = new Mock<WorkSurfaceContextViewModel>(eventAggregator.Object, new WorkSurfaceKey(), new Mock<IWorkSurfaceViewModel>().Object, new Mock<IPopupController>().Object, new Action<IContextualResourceModel, bool>(
(a, b) => { }));
workSurfaceContextViewModel.Setup(v => v.Debug()).Verifiable();
vm.ActiveItem = workSurfaceContextViewModel.Object;
//------------Execute Test---------------------------
vm.Handle(new AddWorkSurfaceMessage(new Mock<IWorkSurfaceObject>().Object) { ShowDebugWindowOnLoad = showDebugWindowOnLoad });
//------------Assert Results-------------------------
workSurfaceContextViewModel.Verify(v => v.Debug(), showDebugWindowOnLoad ? Times.Once() : Times.Never());
}