public async Task DebugPageViewModel_PropertyChange() { var unconfiguredProvider = new TestUnconfiguredPropertyProvider(); var profiles = new List <ILaunchProfile>() { { new LaunchProfile() { Name = "p1", CommandName = "test", DoNotPersist = true } } }; var viewModelData = new ViewModelData() { UnconfiguredProvider = unconfiguredProvider, Profiles = profiles, UIProviders = new List <Lazy <ILaunchSettingsUIProvider, IOrderPrecedenceMetadataView> >() { { new Lazy <ILaunchSettingsUIProvider, IOrderPrecedenceMetadataView>(() => { var uiProvider = new Mock <ILaunchSettingsUIProvider>(); uiProvider.Setup(m => m.CustomUI).Returns((UserControl)null); uiProvider.Setup(m => m.ShouldEnableProperty(It.IsAny <string>())).Returns(true); uiProvider.Setup(m => m.CommandName).Returns("test"); return(uiProvider.Object); }, new Mock <IOrderPrecedenceMetadataView>().Object) } } }; var viewModel = CreateViewModel(viewModelData); await viewModel.Object.Initialize(); await viewModelData.FirstSnapshotComplete.Task; Assert.True(viewModel.Object.HasProfiles); Assert.True(viewModel.Object.IsProfileSelected); Assert.True(viewModel.Object.SelectedDebugProfile.IsInMemoryObject()); // Change a property, should trigger the selected profile to no longer be in-memory viewModel.Object.CommandLineArguments = "-arg"; Assert.False(viewModel.Object.SelectedDebugProfile.IsInMemoryObject()); }
public async Task DebugPageViewModel_NoProfiles() { var unconfiguredProvider = new TestUnconfiguredPropertyProvider(); var profiles = new List <ILaunchProfile>(); var viewModelData = new ViewModelData() { UnconfiguredProvider = unconfiguredProvider, Profiles = profiles, }; var viewModel = CreateViewModel(viewModelData); await viewModel.Object.Initialize(); Assert.False(viewModel.Object.HasProfiles); Assert.False(viewModel.Object.IsProfileSelected); Assert.False(viewModel.Object.SupportsExecutable); Assert.False(viewModel.Object.HasLaunchOption); Assert.Equal(string.Empty, viewModel.Object.WorkingDirectory); Assert.Equal(string.Empty, viewModel.Object.LaunchPage); Assert.Equal(string.Empty, viewModel.Object.ExecutablePath); Assert.Equal(string.Empty, viewModel.Object.CommandLineArguments); }