Exemplo n.º 1
0
        public void Actions_WhenWorkspaceContainsAnActionThatIsBlockedButNotBlocking_ContainsAction()
        {
            IAction unblockedAction = AnAction.Build();
            IAction blockedAction   = AnAction.BlockedBy(unblockedAction).Build();
            var     test            = new ProjectsFilter(AWorkspace.With(blockedAction).
                                                         With(unblockedAction).Build());

            Assert.Contains(blockedAction, test.Actions);
            Assert.Equal(1, test.Actions.Count);
        }
        public void Actions_WhenWorkspaceHasMixedActions_ContainsOnlyInboxActions()
        {
            IAction inboxAction = AnAction.In(State.Inbox).Build();

            WorkspaceBuilder stubWorkspace =
                AWorkspace
                .With(AnAction.In(State.Committed))
                .With(inboxAction)
                .With(AnAction.In(State.Hold))
                .With(AnAction.In(State.SomedayMaybe));

            var test = new InboxActionsFilter(stubWorkspace.Build());

            Assert.Contains(inboxAction, test.Actions);
            Assert.Equal(1, test.Actions.Count);
        }
        public void Actions_WhenAnActionIsMovedOutOfTheInbox_RaisesCollectionChanged()
        {
            Mock <IAction> stubAction = AnAction.In(State.Inbox).Mock();
            IWorkspace     workspace  = AWorkspace.With(stubAction.Object).Build();

            var test = new InboxActionsFilter(workspace);

            bool eventRaised = false;

            test.Actions.CollectionChanged += (o, args) => eventRaised = true;

            stubAction.Setup(x => x.ActionState).Returns(State.Committed);
            stubAction.Raise(x => x.PropertyChanged += null, new PropertyChangedEventArgs("ActionState"));

            Assert.DoesNotContain(stubAction.Object, test.Actions);
            Assert.Empty(test.Actions);
            Assert.True(eventRaised);
        }
        public void Actions_WhenFirstInboxActionIsAddedToWorkspace_RaisesCollectionChanged()
        {
            IWorkspace workspace   = AWorkspace.Build();
            IAction    inboxAction = AnAction.In(State.Inbox).Build();

            var test = new InboxActionsFilter(workspace);

            bool eventRaised = false;

            test.Actions.CollectionChanged +=
                (o, args) =>
            {
                Assert.Same(inboxAction, args.NewItems.Cast <IAction>().Single());
                eventRaised = true;
            };

            workspace.Actions.Add(inboxAction);

            Assert.Contains(inboxAction, test.Actions);
            Assert.Equal(1, test.Actions.Count);
            Assert.True(eventRaised);
        }