Beispiel #1
0
        private PickProjectIdViewModel BuildTestObject()
        {
            var testObject = new PickProjectIdViewModel(_windowMock.Object, _manageAccoutMock.Object, _projectTaskSource.Task);

            testObject.PropertyChanged += _addPropertiesChanged;
            return(testObject);
        }
Beispiel #2
0
        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);
        }
Beispiel #5
0
        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);
        }
Beispiel #8
0
        public void TestOkCommand()
        {
            _testObject = BuildTestObject();
            _testObject.SelectedProject = s_defaultProject;

            _testObject.OkCommand.Execute(null);

            _windowMock.Verify(window => window.Close());
            Assert.AreEqual(s_defaultProject, _testObject.Result);
        }
Beispiel #9
0
        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);
 }
Beispiel #11
0
 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);
        }
Beispiel #13
0
        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);
        }
Beispiel #15
0
        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);
        }
Beispiel #16
0
        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>();
 }
Beispiel #19
0
        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);
        }
Beispiel #20
0
        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);
        }
Beispiel #21
0
        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);
        }
Beispiel #22
0
        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);
        }
Beispiel #23
0
 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);
        }