public void WorkspaceItemRepositoryWorkspaceItemsExpectedInvokesReadFirstTime()
{
string resourceName;
Guid workspaceID;
Guid serverID;
var mockConn = new Mock<IEnvironmentConnection>();
mockConn.Setup(c => c.IsConnected).Returns(true);
ExecuteMessage msg = new ExecuteMessage { HasError = false };
msg.SetMessage("Workspace item updated");
var payload = JsonConvert.SerializeObject(msg);
mockConn.Setup(c => c.ExecuteCommand(It.IsAny<StringBuilder>(), It.IsAny<Guid>())).Returns(new StringBuilder(payload)).Verifiable();
var model = CreateModel(ResourceType.Service, mockConn, out resourceName, out workspaceID, out serverID);
var repositoryPath = GetUniqueRepositoryPath();
// Create repository file with one item in it
var repository = new WorkspaceItemRepository(repositoryPath);
repository.AddWorkspaceItem(model.Object);
// Now create a new repository from the previous file
repository = new WorkspaceItemRepository(repositoryPath);
// Access items for the first time
var items = repository.WorkspaceItems;
Assert.AreEqual(1, items.Count);
Assert.AreEqual(workspaceID, items[0].WorkspaceID);
Assert.AreEqual(serverID, items[0].ServerID);
Assert.AreEqual(resourceName, items[0].ServiceName);
Assert.AreEqual(WorkspaceItem.ServiceServiceType, items[0].ServiceType);
}