private PickProjectIdViewModel BuildTestObject() { var testObject = new PickProjectIdViewModel(_windowMock.Object, _manageAccoutMock.Object, _projectTaskSource.Task); testObject.PropertyChanged += _addPropertiesChanged; return(testObject); }
private PickProjectIdViewModel BuildTestObject() { Func <Task <IList <Project> > > projectsListAsyncCallBack = async() => { try { return(await _projectTaskSource.Task); } finally { _projectTaskSource = new TaskCompletionSource <IList <Project> >(); } }; Func <IResourceManagerDataSource> dataSourceFactory = () => Mock.Of <IResourceManagerDataSource>( ds => ds.GetSortedActiveProjectsAsync() == projectsListAsyncCallBack()); var testObject = new PickProjectIdViewModel(_windowMock.Object, dataSourceFactory, () => { }); testObject.PropertyChanged += _addPropertiesChanged; if (testObject.LoadTask != null) { testObject.LoadTask.PropertyChanged += _addLoadTaskPropertyChanged; } testObject.PropertyChanged += _updateLoadTaskEvents; return(testObject); }
public void TestRefreshCommand_RefreshesResourceManagerDataSource() { _testObject = new PickProjectIdViewModel(DefaultHelpText, false); _testObject.RefreshCommand.Execute(null); PackageMock.Verify(p => p.DataSourceFactory.ResourceManagerDataSource.RefreshProjects()); }
public void TestConstructor_SetsHelpText() { const string expectedHelpText = "Expected Help Text"; _testObject = new PickProjectIdViewModel(expectedHelpText, true); Assert.AreEqual(expectedHelpText, _testObject.HelpText); }
public void TestChangeUserCommand_CallsPromptManageAccount() { _testObject = BuildTestObject(); _testObject.ChangeUserCommand.Execute(null); _manageAccoutMock.Verify(f => f(), Times.Once); }
public void TestRefreshCommand_StartsNewLoadTask() { _testObject = new PickProjectIdViewModel(DefaultHelpText, false); AsyncProperty originalLoadTask = _testObject.LoadTask; _testObject.RefreshCommand.Execute(null); Assert.AreNotEqual(originalLoadTask, _testObject.LoadTask); }
public void TestChangeUserCommand_UpdatesHasAccount() { CredentialStoreMock.SetupGet(cs => cs.CurrentAccount).Returns(() => null); _testObject = new PickProjectIdViewModel(DefaultHelpText, false); CredentialStoreMock.SetupGet(cs => cs.CurrentAccount).Returns(s_defaultAccount); _testObject.ChangeUserCommand.Execute(null); Assert.IsTrue(_testObject.HasAccount); }
public void TestOkCommand() { _testObject = BuildTestObject(); _testObject.SelectedProject = s_defaultProject; _testObject.OkCommand.Execute(null); _windowMock.Verify(window => window.Close()); Assert.AreEqual(s_defaultProject, _testObject.Result); }
public void TestChangeUserCommandNoUser() { CredentialStoreMock.SetupGet(cs => cs.CurrentAccount).Returns(() => null); _testObject = BuildTestObject(); _testObject.ChangeUserCommand.Execute(null); _manageAccoutMock.Verify(f => f(), Times.Once); Assert.IsNull(_testObject.LoadTask); }
public void BeforeEach() { _testObject = null; _projectTaskSource = new TaskCompletionSource <IList <Project> >(); PackageMock.Setup(p => p.DataSourceFactory.ResourceManagerDataSource.ProjectsListTask) .Returns(() => _projectTaskSource.Task); _properiesChanged = new List <string>(); _testObject = new PickProjectIdViewModel(DefaultHelpText, false); _testObject.PropertyChanged += (sender, args) => _properiesChanged.Add(args.PropertyName); }
protected override void BeforeEach() { _testObject = null; _projectTaskSource = new TaskCompletionSource <IEnumerable <Project> >(); _windowMock = new Mock <IPickProjectIdWindow>(); _windowMock.Setup(window => window.Close()).Verifiable(); _properiesChanged = new List <string>(); _addPropertiesChanged = (sender, args) => _properiesChanged.Add(args.PropertyName); _manageAccoutMock = new Mock <Action>(); }
public void TestChangeUserCommandNoUser() { CredentialStoreMock.SetupGet(cs => cs.CurrentAccount).Returns(() => null); _testObject = new PickProjectIdViewModel(DefaultHelpText, false); _testObject.ChangeUserCommand.Execute(null); PackageMock.Verify(p => p.UserPromptService.PromptUser(It.IsAny <ManageAccountsWindowContent>())); Assert.IsNull(_testObject.LoadTask); }
public void TestChangeUserCommand_UpdatesHasAccount() { CredentialStoreMock.SetupGet(cs => cs.CurrentAccount).Returns(() => null); _testObject = BuildTestObject(); CredentialStoreMock.SetupGet(cs => cs.CurrentAccount).Returns(s_defaultAccount); _testObject.ChangeUserCommand.Execute(null); Assert.IsTrue(_testObject.HasAccount); }
public void TestChangeUserCommandNoUser() { CredentialsStore.Default.UpdateCurrentAccount(null); _testObject = BuildTestObject(); _manageAccoutMock.Setup(f => f()).Callback(() => CredentialsStore.Default.UpdateCurrentAccount(null)); _testObject.ChangeUserCommand.Execute(null); _manageAccoutMock.Verify(f => f(), Times.Once); Assert.IsNull(_testObject.LoadTask); }
public void TestNoUser() { CredentialsStore.Default.CurrentAccount = null; _testObject = BuildTestObject(); Assert.IsNull(_testObject.LoadTask); Assert.AreEqual(DefaultProjectId, _testObject.ProjectId); Assert.IsNull(_testObject.SelectedProject); Assert.IsNull(_testObject.Projects); Assert.AreEqual(DefaultProjectId != null, _testObject.OkCommand.CanExecuteCommand); }
public void TestInitialConditionsWithoutDefaultUser() { CredentialStoreMock.SetupGet(cs => cs.CurrentAccount).Returns(() => null); _testObject = BuildTestObject(); Assert.IsNull(_testObject.LoadTask); Assert.IsNull(_testObject.Projects); Assert.IsNull(_testObject.SelectedProject); Assert.IsFalse(_testObject.OkCommand.CanExecuteCommand); Assert.IsNull(_testObject.Result); }
public void TestInitialConditionsWithoutDefaultUser() { CredentialsStore.Default.UpdateCurrentAccount(null); _testObject = BuildTestObject(); Assert.IsNull(_testObject.LoadTask); Assert.IsNull(_testObject.Projects); Assert.IsNull(_testObject.SelectedProject); Assert.IsFalse(_testObject.OkCommand.CanExecuteCommand); Assert.IsNull(_testObject.Result); }
public void BeforeEach() { _testObject = null; CredentialsStore.Default.UpdateCurrentAccount(s_defaultAccount); CredentialsStore.Default.UpdateCurrentProject(s_defaultProject); _projectTaskSource = new TaskCompletionSource <IEnumerable <Project> >(); _windowMock = new Mock <IPickProjectIdWindow>(); _windowMock.Setup(window => window.Close()).Verifiable(); _properiesChanged = new List <string>(); _addPropertiesChanged = (sender, args) => _properiesChanged.Add(args.PropertyName); _manageAccoutMock = new Mock <Action>(); }
public void TestErrorWhileLoading() { _testObject = BuildTestObject(); _projectTaskSource.SetException(new Exception(TestExceptionMessage)); Assert.IsTrue(_testObject.LoadTask.IsCompleted, "Task should not be running."); Assert.IsTrue(_testObject.LoadTask.IsError, "Task should be falulted."); Assert.IsFalse(_testObject.LoadTask.IsCanceled); Assert.IsFalse(_testObject.LoadTask.IsSuccess); Assert.AreEqual(TestExceptionMessage, _testObject.LoadTask.ErrorMessage); CollectionAssert.That.IsEmpty(_testObject.Projects); }
public void TestReloadProjects() { _testObject = BuildTestObject(); _projectTaskSource.SetResult(new[] { s_testProject }); _properiesChanged.Clear(); _testObject.ChangeUserCommand.Execute(null); Assert.IsFalse(_testObject.LoadTask.IsError); Assert.IsFalse(_testObject.LoadTask.IsCanceled); Assert.IsTrue(_testObject.LoadTask.IsSuccess); Assert.IsNull(_testObject.SelectedProject); Assert.IsFalse(_testObject.OkCommand.CanExecuteCommand); }
public void TestInitialConditionsWithDefaultUser() { CredentialStoreMock.SetupGet(cs => cs.CurrentAccount).Returns(s_defaultAccount); _testObject = BuildTestObject(); Assert.IsFalse(_testObject.LoadTask.IsCompleted, "Task should be running."); Assert.IsFalse(_testObject.LoadTask.IsError); Assert.IsFalse(_testObject.LoadTask.IsCanceled); Assert.IsFalse(_testObject.LoadTask.IsSuccess); Assert.IsNull(_testObject.SelectedProject); Assert.IsFalse(_testObject.OkCommand.CanExecuteCommand); Assert.IsNull(_testObject.Result); }
public void TestLoadProjectsWithIncludedSelectedProject() { _testObject = BuildTestObject(); _testObject.SelectedProject = s_testProject; _projectTaskSource.SetResult(new[] { s_testProject }); CollectionAssert.AreEqual( new[] { nameof(PickProjectIdViewModel.SelectedProject), nameof(PickProjectIdViewModel.Projects), nameof(PickProjectIdViewModel.SelectedProject) }, _properiesChanged); CollectionAssert.AreEqual(new[] { s_testProject }, _testObject.Projects.ToList()); Assert.AreEqual(s_testProject, _testObject.SelectedProject); }
public void BeforeEach() { CredentialsStore.Default.UpdateCurrentProject(DefaultProject); CredentialsStore.Default.CurrentAccount = new UserAccount { AccountName = MockUserName }; _projectTaskSource = new TaskCompletionSource <IList <Project> >(); _windowMock = new Mock <IPickProjectIdWindow>(); _windowMock.Setup(window => window.Close()).Verifiable(); _properiesChanged = new List <string>(); _loadTaskPropertiesChanged = new List <string>(); _addLoadTaskPropertyChanged = (sender, args) => _loadTaskPropertiesChanged.Add(args.PropertyName); _addPropertiesChanged = (sender, args) => _properiesChanged.Add(args.PropertyName); _updateLoadTaskEvents = (sender, args) => { var model = sender as PickProjectIdViewModel; if (model?.LoadTask != null && (nameof(PickProjectIdViewModel.LoadTask).Equals(args.PropertyName) || args.PropertyName == null)) { model.LoadTask.PropertyChanged += _addLoadTaskPropertyChanged; } }; _testObject = BuildTestObject(); }
public void TestConstructor_SetsAllowAccountChange() { _testObject = new PickProjectIdViewModel(DefaultHelpText, true); Assert.IsTrue(_testObject.AllowAccountChange); }