public void DeployViewModel_SourceServerDisconnected_SourceServerHasDroppedTrue()
{
var mockSourceServer = new Mock<IEnvironmentModel>();
mockSourceServer.Setup(server => server.Connection.AppServerUri).Returns(new Uri("http://localhost"));
mockSourceServer.Setup(server => server.IsConnected).Returns(true);
mockSourceServer.Setup(server => server.IsAuthorizedDeployFrom).Returns(true);
mockSourceServer.Setup(server => server.IsAuthorizedDeployTo).Returns(true);
mockSourceServer.Setup(a => a.AuthorizationService).Returns(_authService.Object);
Mock<IEnvironmentModel> destEnv;
Mock<IEnvironmentModel> destServer;
var deployViewModel = SetupDeployViewModel(out destEnv, out destServer);
deployViewModel.SelectedDestinationServer = destServer.Object;
deployViewModel.SelectedSourceServer = mockSourceServer.Object;
deployViewModel.HasItemsToDeploy = (sourceDeployItemCount, destinationDeployItemCount) => true;
destEnv.Setup(e => e.IsAuthorizedDeployTo).Returns(true);
Assert.IsFalse(deployViewModel.SourceServerHasDropped);
mockSourceServer.Setup(server => server.IsConnected).Returns(false);
var connectedEventArgs = new ConnectedEventArgs { IsConnected = false };
mockSourceServer.Raise(model => model.IsConnectedChanged += null, connectedEventArgs);
Assert.IsTrue(deployViewModel.SourceServerHasDropped);
Assert.IsTrue(deployViewModel.ShowServerDisconnectedMessage);
Assert.AreEqual("Source server has disconnected.", deployViewModel.ServerDisconnectedMessage);
}