protected void CreateFullExportsAndVmWithEmptyRepo()
{
CreateResourceRepo();
var mockEnv = new Mock<IEnvironmentRepository>();
mockEnv.SetupProperty(g => g.ActiveEnvironment); // Start tracking changes
mockEnv.Setup(g => g.All()).Returns(new List<IEnvironmentModel>());
mockEnv.Setup(c => c.ReadSession()).Returns(new[] { Guid.NewGuid() });
var mockEnvironmentModel = new Mock<IEnvironmentModel>();
mockEnvironmentModel.Setup(model => model.AuthorizationService).Returns(new Mock<IAuthorizationService>().Object);
mockEnv.Setup(repository => repository.Source).Returns(mockEnvironmentModel.Object);
var environmentRepo = mockEnv.Object;
EventAggregator = new Mock<IEventAggregator>();
PopupController = new Mock<IPopupController>();
WebController = new Mock<IWebController>();
WindowManager = new Mock<IWindowManager>();
MockStudioResourceRepository = new Mock<IStudioResourceRepository>();
Mock<IAsyncWorker> asyncWorker = AsyncWorkerTests.CreateSynchronousAsyncWorker();
Mock<IWorkspaceItemRepository> mockWorkspaceItemRepository = GetworkspaceItemRespository();
// ReSharper disable ObjectCreationAsStatement
new WorkspaceItemRepository(mockWorkspaceItemRepository.Object);
// ReSharper restore ObjectCreationAsStatement
MainViewModel = new MainViewModel(EventAggregator.Object, asyncWorker.Object, environmentRepo,
new Mock<IVersionChecker>().Object, false, null, PopupController.Object,
WindowManager.Object, WebController.Object, MockStudioResourceRepository.Object, new Mock<IConnectControlSingleton>().Object, new Mock<IConnectControlViewModel>().Object);
}