public void MainViewModel_ShowOAuthSave_ShowsDialog_AndCanclesOut()
{
//------------Setup for test--------------------------
var localhost = new Mock<IEnvironmentModel>();
localhost.Setup(e => e.ID).Returns(Guid.Empty);
localhost.Setup(e => e.IsConnected).Returns(true);
var environmentRepository = new Mock<IEnvironmentRepository>();
environmentRepository.Setup(c => c.All()).Returns(new[] { localhost.Object });
environmentRepository.Setup(c => c.Source).Returns(localhost.Object);
var eventPublisher = new Mock<IEventAggregator>();
var asyncWorker = AsyncWorkerTests.CreateSynchronousAsyncWorker();
var versionChecker = new Mock<IVersionChecker>();
var browserPopupController = new Mock<IBrowserPopupController>();
var viewModel = new MainViewModelMock(eventPublisher.Object, asyncWorker.Object, environmentRepository.Object, versionChecker.Object, new Mock<IStudioResourceRepository>().Object, new Mock<IConnectControlSingleton>().Object, new Mock<IConnectControlViewModel>().Object, false, browserPopupController.Object) { IsBusyDownloadingInstaller = () => false };
//------------Execute Test---------------------------
// ReSharper disable ConvertToConstant.Local
bool save = false;
bool drop = false;
// ReSharper restore ConvertToConstant.Local
var newEnvironment = new Mock<IEnvironmentModel>();
viewModel.SetActiveEnvironment(newEnvironment.Object);
var fact = new Mock<IDropboxFactory>();
fact.Setup(a => a.Create()).Returns(new Mock<IDropNetClient>().Object);
viewModel.DropboxFactory = fact.Object;
viewModel.ShowSaveDialog = (a, b, c, d) => save = true;
viewModel.ShowDropboxAction = (window, vm) => { drop = true; return true; };
viewModel.CreateOAuthType(newEnvironment.Object, "dropBox", "bob", false);
//------------Assert Results-------------------------
Assert.IsFalse(save);
Assert.IsTrue(drop);
}