Пример #1
0
        public void TestUpdate()
        {
            // arrange
            var manager      = new RedmineManagerInstance(Url, ApiKey);
            var activityInfo = manager.GetTotalActivityInfoList(new DataSourceParameter()).First(a => a.IsDefault);
            var issueInfo    = manager.GetIssueInfoList(new DataSourceParameter()
            {
                Limit = 1
            }).First();
            var projectInfo = new ProjectInfo()
            {
                Id = issueInfo.ProjectId, Name = issueInfo.ProjectShortName
            };

            var timeEntryInfo = new TimeEntryInfo()
            {
                Id            = null,
                Name          = "CreateAndDeleteTest",
                StartDateTime = new DateTime(2016, 7, 8, 10, 0, 0),
                EndDateTime   = new DateTime(2016, 7, 8, 12, 15, 0, 0),
                UpdateTime    = new DateTime(2017, 2, 14),
                ActivityInfo  = activityInfo,
                IssueInfo     = issueInfo,
                ProjectInfo   = projectInfo,
            };

            var created   = manager.CreateObject(timeEntryInfo);
            var createdId = created.Id;

            // act
            var currentTime = DateTime.Now;

            timeEntryInfo.StartDateTime = new DateTime(2016, 7, 8, 8, 15, 0);
            manager.UpdateObject(timeEntryInfo);
            var updatedIssues =
                manager.GetTotalTimeEntryInfoList(new DataSourceParameter()
            {
                UpdateStartDateTime = currentTime
            })
                .Where(i => i.Name == timeEntryInfo.Name);

            // clean up
            manager.DeleteTimeEntry(timeEntryInfo.Id, new DataSourceParameter());

            // assert
            Assert.That(updatedIssues, Is.Not.Null);
            Assert.That(updatedIssues.Count, Is.EqualTo(1));
            var issue = updatedIssues.First();

            Assert.That(issue.UpdateTime - DateTime.Now, Is.LessThanOrEqualTo(TimeSpan.FromMinutes(5)));
            Assert.That(issue.StartDateTime, Is.EqualTo(timeEntryInfo.StartDateTime));
        }