コード例 #1
0
        public void ShouldNotCreateWorkItemWithWEmptyId()
        {
            StubDominoAndMockWhiskWork();

            Record(
                () =>
            {
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new WorkItem[0]);
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData(string.Empty));
            }
                );

            Playback();
        }
コード例 #2
0
        public void ShouldNotUpdateDominoIfIdDoesntStartWithB()
        {
            StubWhiskWorkAndMockDomino();

            Record(
                () =>
            {
                var cr = WorkItem.New("9765", "/done");
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new[] { cr });
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData());
            });

            Playback();
        }
コード例 #3
0
        public void ShouldNotDeleteFromWhiskWorkIfIdDoesntStartWithB()
        {
            StubDominoAndMockWhiskWork();

            Record(
                () =>
            {
                var bug =
                    WorkItem.New("B2404", "/cmsdev/analysis/inprocess").AddClass("cr").UpdateOrdinal(-1).
                    UpdateProperties(CreateProperties());
                var cr = WorkItem.New("9765", "/done").AddClass("cr");
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new[] { bug, cr });
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData());
            });

            Playback();
        }
コード例 #4
0
        public void ShouldCreateWorkItemAndMoveItToCorrectStep()
        {
            StubDominoAndMockWhiskWork();

            Record(
                () =>
            {
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new WorkItem[0]);
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData());

                WhiskWorkRepository.PostWorkItem(WorkItem.New("B2404", "/cmsdev/scheduled"));
                WhiskWorkRepository.PostWorkItem(WorkItem.New("B2404", "/cmsdev/wip/analysis/inprocess"));
            }
                );

            Playback();
        }
コード例 #5
0
        public void ShouldUpdateOrdinalToMinusThreeWhenPriorityIsThree()
        {
            StubDominoAndMockWhiskWork();

            Record(
                () =>
            {
                var currentWorkItem = WorkItem.New("B2404", "/cmsdev/analysis/inprocess");
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new[] { currentWorkItem.AddClass("cr") });
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData("2404", "3"));


                WhiskWorkRepository.PostWorkItem(
                    currentWorkItem.UpdateProperties(CreateProperties("B2404", "3")).UpdateOrdinal(-3));
            });

            Playback();
        }
コード例 #6
0
        public void ShouldNotUpdateDominoStatusWhenWorkItemLastMovedIsOlderThanDominoTimestamp()
        {
            StubWhiskWorkAndMockDomino();

            DateTime now = DateTime.Now;

            Record(
                () =>
            {
                var bug =
                    WorkItem.New("B2404", "/done").AddClass("cr").UpdateOrdinal(1).UpdateProperties(
                        CreateProperties()).UpdateLastMoved(now);
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new[] { bug });
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData(now.AddSeconds(1)));
            });

            Playback();
        }
コード例 #7
0
        public void ShouldUpdateDominoStatus()
        {
            StubWhiskWorkAndMockDomino();

            Record(
                () =>
            {
                var bug =
                    WorkItem.New("B2404", "/done").AddClass("cr").UpdateOrdinal(1).UpdateProperties(
                        CreateProperties());
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new[] { bug });
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData());

                DominoRepository.UpdateField("unid1", "Status", "10");
            });

            Playback();
        }
コード例 #8
0
        public void ShouldDeleteExtraWorkItemFromWhiskWork()
        {
            StubDominoAndMockWhiskWork();

            Record(
                () =>
            {
                var bug =
                    WorkItem.New("B2404", "/cmsdev/analysis/inprocess").AddClass("cr").UpdateOrdinal(-1).
                    UpdateProperties(CreateProperties());
                var removedBug = WorkItem.New("B2405", "/done").AddClass("cr");
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new[] { bug, removedBug });
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData());

                WhiskWorkRepository.DeleteWorkItem(removedBug.RemoveClass("cr"));
            });

            Playback();
        }
コード例 #9
0
        public void ShouldReverseSynchronizeStatus()
        {
            StubDominoAndMockWhiskWork();

            DateTime now = DateTime.Now;

            Record(
                () =>
            {
                var cr =
                    WorkItem.New("2404", "/cmsdev/scheduled").AddClass("cr").UpdateOrdinal(123).UpdateProperties(
                        CreateProperties()).UpdateLastMoved(now);
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new[] { cr });
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData(now.AddSeconds(1)));
                WhiskWorkRepository.PostWorkItem(cr.UpdateLastMoved(now.AddSeconds(1)));
            });

            Playback();
        }
コード例 #10
0
        public void ShouldUpdateWhiskWorkStatusWhenWorkItemLastMovedIsOlderThanDominoTimestamp()
        {
            StubDominoAndMockWhiskWork();

            DateTime now = DateTime.Now;

            Record(
                () =>
            {
                var bug =
                    WorkItem.New("B2404", "/cmsdev/scheduled").AddClass("cr").UpdateOrdinal(-1).UpdateProperties(
                        CreateProperties()).UpdateLastMoved(now);
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new[] { bug });
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData(now.AddSeconds(1)));

                WhiskWorkRepository.PostWorkItem(WorkItem.New("B2404", "/cmsdev/wip/analysis/inprocess"));
            });

            Playback();
        }
コード例 #11
0
        public void ShouldUpdateResponsible()
        {
            StubWhiskWorkAndMockDomino();

            var properties = CreateProperties();

            properties.Add("responsible", "Some Person");

            Record(
                () =>
            {
                var currentWorkItem =
                    WorkItem.New("B2404", "/cmsdev/analysis/inprocess").AddClass("cr").UpdateOrdinal(1).
                    UpdateProperties(properties);
                SetupResult.For(WhiskWorkRepository.GetWorkItems()).Return(new[] { currentWorkItem });
                SetupResult.For(DominoRepository.OpenTable()).Return(CreateDominoData());

                DominoRepository.UpdateField("unid1", "CurrentPerson", "Some Person");
            });

            Playback();
        }