public void CanExecuteDuringAsyncExecute2() { var tcs = new TaskCompletionSource<object>(); var canExecute = false; var executeCalled = false; var command = new AsyncDelegateCommand(() => { executeCalled = true; return tcs.Task; }, () => canExecute); Assert.IsFalse(command.CanExecute(null)); command.Execute(null); Assert.IsFalse(executeCalled); canExecute = true; Assert.IsTrue(command.CanExecute(null)); command.Execute(null); executeCalled = false; Assert.IsFalse(command.CanExecute(null)); command.Execute(null); Assert.IsFalse(executeCalled); tcs.SetResult(null); Assert.IsTrue(command.CanExecute(null)); command.Execute(null); Assert.IsTrue(executeCalled); }
public void CanExecuteDuringAsyncExecute() { AssertHelper.ExpectedException<ArgumentNullException>(() => new AsyncDelegateCommand((Func<Task>)null)); var tcs = new TaskCompletionSource<object>(); var executeCalled = false; var command = new AsyncDelegateCommand(() => { executeCalled = true; return tcs.Task; }); Assert.IsTrue(command.CanExecute(null)); command.Execute(null); executeCalled = false; Assert.IsFalse(command.CanExecute(null)); command.Execute(null); Assert.IsFalse(executeCalled); tcs.SetResult(null); Assert.IsTrue(command.CanExecute(null)); command.Execute(null); Assert.IsTrue(executeCalled); }
public AccountController(IAccountService accountService, IMessageService messageService, IResourceService resourceService) { this.accountService = accountService; this.messageService = messageService; this.resourceService = resourceService; signInCommand = new DelegateCommand(SignIn, CanSignIn); signOutCommand = new AsyncDelegateCommand(SignOutAsync); }
public SettingsController(ILauncherService launcherService, IAppInfoService appInfoService, IAppDataService appDataService, Lazy<SettingsLayoutViewModel> settingsLayoutViewModel, Lazy<GeneralSettingsViewModel> generalSettingsViewModel, Lazy<InfoSettingsViewModel> infoSettingsViewModel) { this.launcherService = launcherService; this.appInfoService = appInfoService; this.appDataService = appDataService; this.settingsLayoutViewModel = new Lazy<SettingsLayoutViewModel>(() => InitializeSettingsLayoutViewModel(settingsLayoutViewModel)); this.generalSettingsViewModel = new Lazy<GeneralSettingsViewModel>(() => InitializeGeneralSettingsViewModel(generalSettingsViewModel)); this.infoSettingsViewModel = new Lazy<InfoSettingsViewModel>(() => InitializeInfoSettingsViewModel(infoSettingsViewModel)); this.launchWindowsStoreCommand = new AsyncDelegateCommand(LaunchWindowsStore); }
public NewsFeedsController(IResourceService resourceService, IAppService appService, ILauncherService launcherService, IMessageService messageService, ISyndicationService syndicationService, SelectionService selectionService, Lazy<FeedListViewModel> feedListViewModel) { this.resourceService = resourceService; this.appService = appService; this.launcherService = launcherService; this.messageService = messageService; this.selectionService = selectionService; this.feedListViewModel = feedListViewModel; this.client = syndicationService.CreateClient(); this.addNewFeedCommand = new AsyncDelegateCommand(AddNewFeed); this.removeFeedCommand = new AsyncDelegateCommand(RemoveFeedAsync, CanRemoveFeed); this.refreshFeedCommand = new AsyncDelegateCommand(RefreshFeed, CanRefreshFeed); this.readUnreadCommand = new DelegateCommand(MarkAsReadUnread, CanMarkAsReadUnread); this.launchWebBrowserCommand = new AsyncDelegateCommand(LaunchWebBrowser, CanLaunchWebBrowser); this.selectionService.PropertyChanged += SelectionServicePropertyChanged; }
public void CanExecuteDuringAsyncExecuteWithParameter() { var tcs = new TaskCompletionSource<object>(); string commandParameter = null; var command = new AsyncDelegateCommand(p => { commandParameter = (string)p; return tcs.Task; }); Assert.IsTrue(command.CanExecute(null)); command.Execute("test"); Assert.IsFalse(command.CanExecute(null)); tcs.SetResult(null); Assert.IsTrue(command.CanExecute(null)); Assert.AreEqual("test", commandParameter); }
public AppController(ILauncherService launcherService, IAppInfoService appInfoService, SelectionService selectionService, Lazy<DataController> dataController, Lazy<AccountController> accountController, Lazy<NewsFeedsController> newsFeedsController, Lazy<SettingsController> settingsController, Lazy<ShellViewModel> shellViewModel, Lazy<FeedListViewModel> feedListViewModel, Lazy<FeedItemListViewModel> feedItemListViewModel, Lazy<FeedItemViewModel> feedItemViewModel) { this.launcherService = launcherService; this.appInfoService = appInfoService; this.selectionService = selectionService; this.dataController = dataController; this.accountController = accountController; this.newsFeedsController = newsFeedsController; this.settingsController = settingsController; this.shellViewModel = shellViewModel; this.feedListViewModel = new Lazy<FeedListViewModel>(() => InitializeFeedListViewModel(feedListViewModel)); this.feedItemListViewModel = new Lazy<FeedItemListViewModel>(() => InitializeFeedItemListViewModel(feedItemListViewModel)); this.feedItemViewModel = new Lazy<FeedItemViewModel>(() => InitializeFeedItemViewModel(feedItemViewModel)); this.navigateBackCommand = new DelegateCommand(NavigateBack, CanNavigateBack); this.showFeedListViewCommand = new DelegateCommand(() => SelectedNavigationItem = NavigationItem.FeedList); this.showFeedItemListViewCommand = new DelegateCommand(ShowFeedItemListView); this.showFeedItemViewCommand = new DelegateCommand(ShowFeedItemView); this.showReviewViewCommand = new AsyncDelegateCommand(ShowReviewView); this.showSettingsViewCommand = new DelegateCommand(ShowSettingsView); this.navigationStack = new Stack<NavigationItem>(); }
public void RaiseCanExecuteChangedTest() { var executed = false; var canExecute = false; var command = new AsyncDelegateCommand(() => { executed = true; return Task.FromResult((object)null); }, () => canExecute); Assert.IsFalse(command.CanExecute(null)); canExecute = true; Assert.IsTrue(command.CanExecute(null)); AssertHelper.CanExecuteChangedEvent(command, () => command.RaiseCanExecuteChanged()); AssertHelper.CanExecuteChangedEvent(command, () => command.Execute(null), 2, ExpectedChangedCountMode.Exact); // Because during execution CanExecute returns false Assert.IsTrue(executed); }