[Test] public void SimpleAttributeHelpers()
        {
            Story story = SandboxProject.CreateStory("Custom Attribute Helpers");

            DateTime expectedBirthday = DateTime.Now.Date;

            story.CustomField["ShoeSize"] = 11.5;
            story.CustomField["Freckles"] = true;
            story.CustomField["Hometown"] = "Pierre Part";
            story.CustomField["Birthday"] = expectedBirthday;

            story.Save();

            ResetInstance();
            story = Instance.Get.StoryByID(story.ID);

            double?shoeSize = story.CustomField.GetNumeric("ShoeSize");

            Assert.AreEqual(11.5, shoeSize);

            bool?hasFreckles = story.CustomField.GetBool("Freckles");

            Assert.IsTrue(hasFreckles.Value);

            DateTime?birthday = story.CustomField.GetDate("Birthday");

            Assert.AreEqual(expectedBirthday, birthday.Value);

            string hometown = story.CustomField.GetString("Hometown");

            Assert.AreEqual("Pierre Part", hometown);
        }
        public void AssignTeamToStory()
        {
            var team = Instance.Create.Team("Bears");

            var teamStory = SandboxProject.CreateStory("For Team");

            teamStory.Team = team;
            teamStory.Save();

            ResetInstance();
            team      = Instance.Get.TeamByID(team.ID);
            teamStory = Instance.Get.StoryByID(teamStory.ID);

            var included = false;

            foreach (var story in team.GetPrimaryWorkitems(new StoryFilter()))
            {
                if (story == teamStory)
                {
                    included = true;
                    break;
                }
            }

            Assert.IsTrue(included, "Expected Story \"{0}\" in team \"{1}\" stories.", team.Name, teamStory.Name);
        }
        public void Customer()
        {
            var customer = Instance.Members.FirstOrDefault();

            var story = SandboxProject.CreateStory("Customer filter");

            story.Customer = customer;
            story.Save();

            ResetInstance();
            story    = Instance.Get.StoryByID(story.ID);
            customer = Instance.Get.MemberByID(customer.ID);

            var filter = GetFilter();

            filter.Customer.Add(customer);

            var results = SandboxProject.GetStories(filter);

            Assert.IsTrue(FindRelated(story, results), "Expected to find story that matched filter.");

            foreach (var result in results)
            {
                Assert.AreEqual(customer, result.Customer);
            }
        }
예제 #4
0
        public void CreateAssets()
        {
            if (sandboxProject == null)
            {
                sandboxProject = SandboxProject;
                andre          = Instance.Get.MemberByID("Member:1000");
                danny          = Instance.Get.MemberByID("Member:1005");
                epic1          = Instance.Create.Epic("Epic 1", SandboxProject);
                epic2          = epic1.GenerateChildEpic();
                epic2.Name     = "Epic 2";
                epic2.Save();
                story1  = SandboxProject.CreateStory("Story 1");
                story2  = SandboxProject.CreateStory("Story 2");
                story3  = SandboxProject.CreateStory("Story 3");
                defect1 = SandboxProject.CreateDefect("Defect 1");
                defect2 = SandboxProject.CreateDefect("Defect 2");
                defect3 = SandboxProject.CreateDefect("Defect 3");

                story1.Description = "ABCDEFGHIJKJMNOPQRSTUVWXYZ";
                story1.Save();

                story2.Description = "1234567890";
                story2.Save();

                story3.Description = "123 ABC";
                story3.Save();

                story1.Owners.Add(andre);
                story1.Owners.Add(danny);
                story3.Owners.Add(andre);

                defect2.Owners.Add(andre);
                defect3.Owners.Add(danny);

                defect1.FoundInBuild    = "1.0.0.0";
                defect1.ResolvedInBuild = "1.0.0.2";
                defect1.Environment     = "Windows";
                defect1.Estimate        = 2.0;
                defect1.Reference       = "123456";
                defect1.Save();

                defect2.AffectedByDefects.Add(defect1);
                defect2.FoundInBuild                  = "1.0.0.0";
                defect2.FoundBy                       = "Joe";
                defect2.VerifiedBy                    = andre;
                defect2.Environment                   = "Mac";
                defect2.Type.CurrentValue             = "Documentation";
                defect2.ResolutionReason.CurrentValue = "Duplicate";
                defect2.Estimate                      = 1.0;
                defect2.Save();

                defect3.FoundInBuild                  = "1.0.0.1";
                defect3.FoundBy                       = "Bob";
                defect3.VerifiedBy                    = danny;
                defect3.Type.CurrentValue             = "Code";
                defect3.ResolutionReason.CurrentValue = "Fixed";
                defect3.Save();
            }
        }
예제 #5
0
        public void TaskEffort()
        {
            var story  = SandboxProject.CreateStory("Task Effort Test");
            var task   = story.CreateTask("Task 1");
            var effort = task.GetEffortRecords(null);

            Assert.AreEqual(0, effort.Count);
        }
예제 #6
0
        public void GetByDisplayID()
        {
            const string defectName = "GetByDisplayIDTest";
            var          displayID  = SandboxProject.CreateStory(defectName).DisplayID;

            ResetInstance();

            Assert.AreEqual(defectName, Instance.Get.StoryByDisplayID(displayID).Name);
            Instance.Get.StoryByDisplayID(displayID).Delete();
        }
        [Test] public void GetListCustomAttribute()
        {
            Story story = SandboxProject.CreateStory("Custom List Attribute");

            story.CustomDropdown["Origin"].CurrentValue = "North America";

            story.Save();

            ResetInstance();
            story = Instance.Get.StoryByID(story.ID);

            Assert.AreEqual("North America", story.CustomDropdown["Origin"].ToString());
        }
        private Story GetStory(string name)
        {
            Story story = SandboxProject.CreateStory(name);
            Task  task  = story.CreateTask("One");

            task.Build = "12345";
            task.Save();
            Test test1 = story.CreateTest("One");
            Test test2 = story.CreateTest("Two");

            test1.RankOrder.SetBelow(test2);
            return(story);
        }
        [Test] public void PrimaryWorkitems()
        {
            ChangeSet changeSet = Instance.Create.ChangeSet(_name, _reference);
            Story     story     = SandboxProject.CreateStory("Test Story");

            changeSet.PrimaryWorkitems.Add(story);
            AssetID changeSetId = changeSet.ID;

            ResetInstance();

            changeSet = Instance.Get.ChangeSetByID(changeSetId);
            Assert.AreEqual(1, changeSet.PrimaryWorkitems.Count);
        }
        [Test] public void GetSimpleCustomAttribute()
        {
            Story story = SandboxProject.CreateStory("Simple Custom Attribute");

            Assert.IsNull(story.CustomField["Hometown"]);

            story.CustomField["Hometown"] = "Napoleonville";
            story.Save();

            ResetInstance();

            story = Instance.Get.StoryByID(story.ID);
            Assert.AreEqual("Napoleonville", story.CustomField["Hometown"]);
        }
예제 #11
0
        public void HonorTrackingLevelToDo()
        {
            Story story = null;

            try {
                // The V1SDKTests system is assumed to be configured for "Story:Off"
                story      = SandboxProject.CreateStory("HonorTrackingLevelToDo");
                story.ToDo = 10.0; //Should throw
            } finally {
                if (story != null)
                {
                    story.Delete();
                }
            }
        }
예제 #12
0
        public void HonorTrackingLevelEffort()
        {
            Story story = null;

            try {
                // The V1SDKTests system is assumed to be configured for "Defect:On"
                story = SandboxProject.CreateStory("HonorTrackingLevelEffort");
                story.CreateEffort(10.0); // should throw
            } finally {
                if (story != null)
                {
                    story.Delete();
                }
            }
        }
        public void Parent()
        {
            var story = SandboxProject.CreateStory("Type Filter");

            story.CreateTask("Task 1");
            story.CreateTask("Task 2");

            ResetInstance();

            var filter = new TaskFilter();

            filter.Parent.Add(story);

            Assert.AreEqual(2, Instance.Get.Tasks(filter).Count);
        }
예제 #14
0
        [Test] public void SaveBeforeClose()
        {
            string gend    = DateTime.Now.ToString("u");
            Story  story   = SandboxProject.CreateStory("My Story");
            string storyid = story.ID;

            story.Description = gend;
            story.Close();

            ResetInstance();

            Story newStory = Instance.Get.StoryByID(storyid);

            Assert.AreEqual(gend, newStory.Description);
            Assert.IsTrue(newStory.IsClosed);
        }
        [Test] public void GetByID()
        {
            Story   story = SandboxProject.CreateStory(_originalName);
            AssetID id    = story.ID;

            // Make sure Name is in the cache.
            Assert.AreEqual(_originalName, story.Name);

            // Update story name to "New Name"
            UpdateStory(id, _originalName, _newName);

            // Assert
            Story story2 = Instance.Get.StoryByID(id);

            Assert.AreEqual(_newName, story2.Name);
        }
예제 #16
0
        public void TaskDefaultOrder()
        {
            var story = SandboxProject.CreateStory("My Story");

            var task1 = story.CreateTask("Task 1");
            var task2 = story.CreateTask("Task 2");
            var task3 = story.CreateTask("Task 3");

            task2.RankOrder.SetBelow(task3);
            task1.RankOrder.SetBelow(task2);

            //order should be 3,2,1
            var workitems = story.GetSecondaryWorkitems(new TaskFilter());
            var expected  = new[] { "Task 3", "Task 2", "Task 1" };

            CollectionAssert.AreEqual(expected, DeriveListOfNamesFromAssets(workitems));
        }
예제 #17
0
        public void OwnedSeconardyWorkitems()
        {
            var story = SandboxProject.CreateStory("Story");
            var task  = story.CreateTask("Task");

            story.CreateTest("Test");

            var member = Instance.Get.MemberByID("Member:20");

            task.Owners.Add(member);

            var filter = new SecondaryWorkitemFilter();

            filter.Project.Add(SandboxProject);
            var items = member.GetOwnedSecondaryWorkitems(filter);

            CollectionAssert.AreEqual(new string[] { "Task" }, DeriveListOfNamesFromAssets(items));
        }
        [Test] public void CustomListTypeValues()
        {
            Story story = SandboxProject.CreateStory("Custom List Attribute2");

            int  count         = 0;
            bool foundNAmerica = false;

            foreach (string value in story.CustomDropdown["Origin"].AllValues)
            {
                count++;
                if (value == "North America")
                {
                    foundNAmerica = true;
                }
            }

            Assert.AreEqual(5, count, "Expected 5 Origin values.  I know this is weak, but what can you do?");
            Assert.IsTrue(foundNAmerica, "Expected to find value \"North America\", but it was not in the collection.");
        }
예제 #19
0
        [Test] public void FilterListTypeText()
        {
            PrimaryWorkitem story = SandboxProject.CreateStory("Going to filter on Status");

            story.Status.CurrentValue = "In Progress";
            story.Save();

            ResetInstance();

            PrimaryWorkitemFilter filter = new PrimaryWorkitemFilter();

            filter.Status.Add("In Progress");
            IEnumerable <PrimaryWorkitem> result = Instance.Get.PrimaryWorkitems(filter);

            Assert.IsTrue(FindRelated(story, result));
            foreach (PrimaryWorkitem workitem in result)
            {
                Assert.AreEqual("In Progress", workitem.Status.ToString());
            }
        }
        [Test] public void ClearCustomListType()
        {
            Story story = SandboxProject.CreateStory("Clear Custom List Attribute");

            story.CustomDropdown["Origin"].CurrentValue = "North America";

            story.Save();

            ResetInstance();
            story = Instance.Get.StoryByID(story.ID);

            Assert.AreEqual("North America", story.CustomDropdown["Origin"].ToString());

            story.CustomDropdown["Origin"].ClearCurrentValue();

            story.Save();

            ResetInstance();
            story = Instance.Get.StoryByID(story.ID);

            Assert.IsNull(story.CustomDropdown["Origin"].ToString(), "Clear should remove the list value");

            story.CustomDropdown["Origin"].CurrentValue = "North America";

            story.Save();

            ResetInstance();
            story = Instance.Get.StoryByID(story.ID);

            Assert.AreEqual("North America", story.CustomDropdown["Origin"].ToString());

            story.CustomDropdown["Origin"].CurrentValue = null;

            story.Save();

            ResetInstance();
            story = Instance.Get.StoryByID(story.ID);

            Assert.IsNull(story.CustomDropdown["Origin"].ToString(), "Clear should remove the list value");
        }
예제 #21
0
        public void Order()
        {
            var story = SandboxProject.CreateStory("Task Order Test");

            var task1 = story.CreateTask("Task 1");
            var task2 = story.CreateTask("Task 2");

            var filter = new TaskFilter();

            filter.Parent.Add(story);
            filter.OrderBy.Add("RankOrder");
            var taskArray = GetTaskArrayFromFilter(filter);

            Assert.AreEqual("Task 1", taskArray[0].Name);
            Assert.AreEqual("Task 2", taskArray[1].Name);

            task2.RankOrder.SetAbove(task1);

            taskArray = GetTaskArrayFromFilter(filter);
            Assert.AreEqual("Task 2", taskArray[0].Name);
            Assert.AreEqual("Task 1", taskArray[1].Name);
        }
예제 #22
0
        public void CreateTaskWithRequiredAttributes()
        {
            const string description = "Test for Task creation with required attributes";
            const string name        = "CreateAndRetrieveTask";
            var          attributes  = new Dictionary <string, object> {
                { "Description", description }
            };

            var story = SandboxProject.CreateStory("Task Order Test");

            story.CreateTask(name, attributes);

            ResetInstance();

            story = Instance.Get.StoryByID(story.ID);
            var task = First(story.GetSecondaryWorkitems(null));

            Assert.AreEqual(name, task.Name);
            Assert.AreEqual(description, task.Description);

            task.Delete();
        }
        [Test] public void GetByID2()
        {
            Story   story = SandboxProject.CreateStory(_originalName);
            AssetID id    = story.ID;

            // Make sure Name is in the cache.
            Assert.AreEqual(_originalName, story.Name);

            // Update story name to "New Name"
            UpdateStory(id, _originalName, _newName);

            // This should not affect my cached value.
            Assert.AreEqual(_originalName, story.Name);

            // Assert
            Story story2 = Instance.Get.StoryByID(id);

            Assert.AreEqual(_newName, story2.Name);

            // Both versions should now show the same value.
            Assert.AreEqual(_newName, story.Name);
        }
예제 #24
0
        public void StoryOwner()
        {
            var story = SandboxProject.CreateStory("StoryOwner");

            var owner = Instance.Create.Member("Dude", "dud", Role.ProjectLead);

            SandboxProject.AssignedMembers.Add(owner);
            SandboxProject.Save();

            story.Owners.Add(owner);
            story.Save();

            ResetInstance();
            story = Instance.Get.StoryByID(story.ID);
            owner = Instance.Get.MemberByID(owner.ID);

            Assert.IsTrue(FindRelated(owner, story.Owners));
            Assert.IsTrue(FindRelated(story, owner.GetOwnedPrimaryWorkitems(null)));

            story.Delete();
            owner.Delete();
        }
        public void IterationTotalEstimate()
        {
            var storyA  = CreateStory("Story A", SandboxProject, SandboxIteration);
            var defectB = CreateDefect("Defect B", SandboxProject, SandboxIteration);

            storyA.Estimate  = 5;
            defectB.Estimate = 10;

            storyA.Save();
            defectB.Save();

            var rogue = SandboxProject.CreateStory("Rogue");

            rogue.Estimate = 13.37;
            rogue.Save();
            rogue.Delete();

            Assert.AreEqual(15, SandboxIteration.GetTotalEstimate(null));
            Assert.AreEqual(15, SandboxIteration.GetTotalEstimate(new PrimaryWorkitemFilter()));
            Assert.AreEqual(5, SandboxIteration.GetTotalEstimate(new StoryFilter()));
            Assert.AreEqual(10, SandboxIteration.GetTotalEstimate(new DefectFilter()));
        }
        public void FindInDescriptionFound()
        {
            var nameString = Guid.NewGuid().ToString();
            var a          = SandboxProject.CreateStory("Has a wierd description");

            a.Description = nameString;
            var b = SandboxProject.CreateStory("Also with funky data");

            b.Description = nameString;

            a.Save();
            b.Save();

            System.Threading.Thread.Sleep(5000);

            var filter = GetFilter();

            filter.Find.SearchString = nameString;
            filter.Find.Fields.Add("Description");

            Assert.AreEqual(2, Instance.Get.Stories(filter).Count);
        }
예제 #27
0
        public void CanDelete()
        {
            const string name = "CanDeleteTest";

            SandboxProject.CreateStory(name);
            var filter = new StoryFilter();

            filter.Name.Add(name);
            var workitems = SandboxProject.GetPrimaryWorkitems(filter);

            Assert.AreEqual(1, workitems.Count);
            var story = First(workitems);

            Assert.IsTrue(story.CanDelete);

            story.Close();
            Assert.IsFalse(story.CanDelete);

            story.Reactivate();
            Assert.IsTrue(story.CanDelete);

            story.Delete();
        }
        public void RequestedBy()
        {
            var story = SandboxProject.CreateStory("RequestdBy Filter");

            story.RequestedBy = "ME";
            story.Save();

            ResetInstance();
            story = Instance.Get.StoryByID(story.ID);

            var filter = new StoryFilter();

            filter.RequestedBy.Add("ME");

            var results = SandboxProject.GetStories(filter);

            Assert.IsTrue(FindRelated(story, results), "Expected to find story that matched filter.");

            foreach (var result in results)
            {
                Assert.AreEqual("ME", result.RequestedBy);
            }
        }
        public void Build()
        {
            var story = SandboxProject.CreateStory("Build Filter");

            story.Build = "10.2.24.1";
            story.Save();

            ResetInstance();
            story = Instance.Get.StoryByID(story.ID);

            var filter = GetFilter();

            filter.Build.Add("10.2.24.1");

            var results = SandboxProject.GetStories(filter);

            Assert.IsTrue(FindRelated(story, results), "Expected to find story that matched filter.");

            foreach (var result in results)
            {
                Assert.AreEqual("10.2.24.1", result.Build);
            }
        }
        public void DependantStories()
        {
            var benefactor = SandboxProject.CreateStory("Benefactor");
            var dependant  = SandboxProject.CreateStory("Dependant");

            dependant.DependsOnStories.Add(benefactor);
            dependant.Save();

            ResetInstance();
            dependant  = Instance.Get.StoryByID(dependant.ID);
            benefactor = Instance.Get.StoryByID(benefactor.ID);

            var filter = GetFilter();

            filter.DependentStories.Add(dependant);
            var results = SandboxProject.GetStories(filter);

            Assert.IsTrue(FindRelated(benefactor, results), "Expected to find story that matched filter.");

            foreach (var result in results)
            {
                Assert.IsTrue(FindRelated(dependant, result.DependentStories), "Expected story to includ value used in filter in dependant stories");
            }
        }