public void MainViewModel_CloseWorkSurfaceContext_CloseTrueAndResourceNotSavedPopupOk_RemoveWorkspaceItemCalledAndContextRemovedAndSaveResourceEventAggregatorMessage()
{
CreateFullExportsAndVm();
Assert.AreEqual(2, MainViewModel.Items.Count);
FirstResource.Setup(r => r.IsWorkflowSaved).Returns(false);
FirstResource.Setup(r => r.IsAuthorized(AuthorizationContext.Contribute)).Returns(true);
PopupController.Setup(s => s.Show(It.IsAny<string>(), It.IsAny<string>(), It.IsAny<MessageBoxButton>(), It.IsAny<MessageBoxImage>(), It.IsAny<string>())).Returns(MessageBoxResult.Yes);
var activetx =
MainViewModel.Items.ToList()
.First(i => i.WorkSurfaceViewModel.WorkSurfaceContext == WorkSurfaceContext.Workflow);
EventAggregator.Setup(e => e.Publish(It.IsAny<TabClosedMessage>()))
.Callback<object>((o =>
{
var msg = (TabClosedMessage)o;
Assert.IsTrue(msg.Context.Equals(activetx));
}));
EventAggregator.Setup(e => e.Publish(It.IsAny<SaveResourceMessage>()))
.Callback<object>((o =>
{
var msg = (SaveResourceMessage)o;
Assert.IsTrue(msg.Resource.Equals(FirstResource.Object));
}));
MainViewModel.DeactivateItem(activetx, true);
MockWorkspaceRepo.Verify(c => c.Remove(FirstResource.Object), Times.Once());
Assert.IsTrue(MainViewModel.Items.Count == 1);
EventAggregator.Verify(e => e.Publish(It.IsAny<TabClosedMessage>()), Times.Once());
EventAggregator.Verify(e => e.Publish(It.IsAny<SaveResourceMessage>()), Times.Once());
}