public void MainViewModelConstructorWithWorkspaceItemsInRepositoryExpectedLoadsWorkspaceItems()
{
var workspaceID = Guid.NewGuid();
var serverID = Guid.NewGuid();
var resourceName = "TestResource_" + Guid.NewGuid();
var resourceID = Guid.NewGuid();
var wsi = new WorkspaceItem(workspaceID, serverID, Guid.Empty, resourceID) { ServiceName = resourceName, ServiceType = WorkspaceItem.ServiceServiceType };
var wsiRepo = new Mock<IWorkspaceItemRepository>();
wsiRepo.Setup(r => r.WorkspaceItems).Returns(new List<IWorkspaceItem>(new[] { wsi }));
wsiRepo.Setup(r => r.AddWorkspaceItem(It.IsAny<IContextualResourceModel>())).Verifiable();
SetupImportServiceForPersistenceTests(wsiRepo);
var resourceModel = new Mock<IContextualResourceModel>();
resourceModel.Setup(m => m.ResourceName).Returns(resourceName);
resourceModel.Setup(m => m.ID).Returns(resourceID);
resourceModel.Setup(m => m.ResourceType).Returns(ResourceType.WorkflowService);
var resourceRepo = new Mock<IResourceRepository>();
resourceRepo.Setup(r => r.All()).Returns(new List<IResourceModel>(new[] { resourceModel.Object }));
resourceRepo.Setup(r => r.ReloadResource(It.IsAny<Guid>(), It.IsAny<ResourceType>(), It.IsAny<IEqualityComparer<IResourceModel>>(), true)).Verifiable();
resourceRepo.Setup(r => r.FetchResourceDefinition(It.IsAny<IEnvironmentModel>(), It.IsAny<Guid>(), It.IsAny<Guid>(), It.IsAny<bool>())).Returns(new ExecuteMessage());
var envConn = new Mock<IEnvironmentConnection>();
envConn.Setup(conn => conn.ServerEvents).Returns(new Mock<IEventPublisher>().Object);
envConn.Setup(conn => conn.WorkspaceID).Returns(workspaceID);
envConn.Setup(conn => conn.ServerID).Returns(serverID);
envConn.Setup(conn => conn.ExecuteCommand(It.IsAny<StringBuilder>(), It.IsAny<Guid>())).Returns(new StringBuilder());
var env = new Mock<IEnvironmentModel>();
env.Setup(e => e.Connection).Returns(envConn.Object);
env.Setup(e => e.IsConnected).Returns(true);
env.Setup(e => e.ResourceRepository).Returns(resourceRepo.Object);
resourceModel.Setup(m => m.Environment).Returns(env.Object);
var envRepo = new Mock<IEnvironmentRepository>();
envRepo.Setup(r => r.All()).Returns(new List<IEnvironmentModel>(new[] { env.Object }));
envRepo.Setup(r => r.Source).Returns(env.Object);
Mock<IAsyncWorker> asyncWorker = AsyncWorkerTests.CreateSynchronousAsyncWorker();
// FetchResourceDefinitionService
var viewModel = new MainViewModelPersistenceMock(envRepo.Object, asyncWorker.Object, false);
wsiRepo.Verify(r => r.AddWorkspaceItem(It.IsAny<IContextualResourceModel>()));
Assert.AreEqual(2, viewModel.Items.Count); // 1 extra for the help tab!
var expected = viewModel.Items.FirstOrDefault(i => i.WorkSurfaceKey.ResourceID == resourceID);
Assert.IsNotNull(expected);
}