コード例 #1
0
        public void TimezoneTests()
        {
            var project = _service.UpdateProject(_requestUTC, new TProjectDto {
                Name = "test project"
            });

            var task = _service.UpdateTask(_requestUTC, new TTaskDto {
                Name       = "test task",
                TProjectID = project.TProjectID
            });

            _service.StartTask(_requestUTC, task.TTaskID);
            var statusModel = _service.GetStatusModel(_requestUTC);

            Assert.IsTrue(statusModel.InProgress);
            int entryID = statusModel.LatestEntry.TEntryID;

            _service.StopTask(_requestUTC, task.TTaskID);
            var entry = _service.GetEntry(_requestUTC, entryID);
            var today = DateTime.Today;

            entry.StartDate = today.AddSeconds(-2);
            entry.EndDate   = today.AddSeconds(-1);
            _service.UpdateEntry(_requestUTC, entry);

            var entryUTC   = _service.GetEntry(_requestUTC, entryID);
            var entryLocal = _service.GetEntry(_requestLocal, entryID);

            Assert.AreEqual(entryUTC.Contrib, 1, 0.1);
            Assert.AreEqual(entryLocal.Contrib, 1, 0.1);

            var summaryUTC   = _service.GetSummaryModel(_requestUTC);
            var summaryLocal = _service.GetSummaryModel(_requestLocal);
            var utcContrib   = summaryUTC.Projects.Single(p => p.TProjectID == project.TProjectID).TTasks.Single(t => t.TTaskID == task.TTaskID).Contrib;
            var localContrib = summaryLocal.Projects.Single(p => p.TProjectID == project.TProjectID).TTasks.Single(t => t.TTaskID == task.TTaskID).Contrib;

            Assert.AreEqual(utcContrib.ThisMonth, 1);
            Assert.AreEqual(localContrib.ThisMonth, 1);
            Assert.AreEqual(utcContrib.Today, 0);
            Assert.AreNotEqual(localContrib.Today, 0);

            var reportUTC   = _service.GetReportModel(_requestUTC, today.AddDays(-1), today.AddDays(1), project.TProjectID, 0);
            var reportLocal = _service.GetReportModel(_requestLocal, today.AddDays(-1), today.AddDays(1), project.TProjectID, 0);

            Assert.AreEqual(reportUTC.DayContribs[today.AddDays(-1)], 1);
            Assert.AreEqual(reportLocal.DayContribs[today], 1);
            Assert.AreEqual(reportUTC.TaskContribs[task.TTaskID], 1);
            Assert.AreEqual(reportLocal.TaskContribs[task.TTaskID], 1);
        }