public void NavigationViewModel_RemoveEnvironment_InvokesSelectLocalhost() { //------------Setup for test-------------------------- var publisher = new Mock<IEventAggregator>(); publisher.Setup(p => p.Publish(It.IsAny<SetActiveEnvironmentMessage>())).Verifiable(); var localhost = new Mock<IEnvironmentModel>(); localhost.Setup(e => e.ID).Returns(Guid.Empty); localhost.Setup(e => e.Name).Returns("localhost"); localhost.Setup(e => e.IsLocalHost).Returns(true); localhost.Setup(e => e.IsConnected).Returns(true); localhost.Setup(e => e.CanStudioExecute).Returns(true); localhost.SetupGet(x => x.Connection.AppServerUri).Returns(new Uri("http://127.0.0.1/")); localhost.Setup(e => e.CanStudioExecute).Returns(true); var toBeRemoved = new Mock<IEnvironmentModel>(); toBeRemoved.Setup(e => e.ID).Returns(Guid.NewGuid()); toBeRemoved.Setup(e => e.Name).Returns("Other Server"); toBeRemoved.Setup(e => e.CanStudioExecute).Returns(true); toBeRemoved.SetupGet(x => x.Connection.AppServerUri).Returns(new Uri("http://127.0.0.2/")); var envList = new List<IEnvironmentModel> { localhost.Object, toBeRemoved.Object }; var envRepo = new Mock<IEnvironmentRepository>(); envRepo.Setup(e => e.All()).Returns(envList); envRepo.Setup(e => e.Source).Returns(localhost.Object); var localhostExplorerItemModel = new ExplorerItemModel { EnvironmentId = Guid.Empty, DisplayName = "localhost" }; ExplorerItemModel anotherEnvironment = new ExplorerItemModel { DisplayName = "Other Server", EnvironmentId = toBeRemoved.Object.ID }; var studioResourceRepository = new StudioResourceRepository(localhostExplorerItemModel, _Invoke); studioResourceRepository.ExplorerItemModels.Add(anotherEnvironment); studioResourceRepository.GetExplorerProxy = guid => new Mock<IClientExplorerResourceRepository>().Object; var viewModel = new NavigationViewModel(publisher.Object, new TestAsyncWorker(), null, envRepo.Object, studioResourceRepository, new Mock<IConnectControlSingleton>().Object, () => { }); foreach(var env in envList) { viewModel.AddEnvironment(env); } //------------Execute Test--------------------------- viewModel.RemoveEnvironment(toBeRemoved.Object); //------------Assert Results------------------------- publisher.Verify(p => p.Publish(It.IsAny<SetActiveEnvironmentMessage>())); Assert.IsTrue(viewModel.ExplorerItemModels[0].IsExplorerSelected); }
private void RemoveEnvironment(IEnvironmentModel environment) { NavigationViewModel.RemoveEnvironment(environment); SaveEnvironment(environment); }