public void TestGet()
        {
            _gateway.Setup(g => g.FindBy(4765)).Returns(new List <TimeEntryRecord>
            {
                new TimeEntryRecord(1234, 55432, 4765, DateTime.Parse("2015-05-17"), 8),
                new TimeEntryRecord(5678, 55433, 4765, DateTime.Parse("2015-05-18"), 6)
            });

            var response = _controller.Get(4765);
            var body     = (List <TimeEntryInfo>)((ObjectResult)response).Value;

            Assert.IsType <OkObjectResult>(response);

            Assert.Equal(2, ((List <TimeEntryInfo>)((ObjectResult)response).Value).Count);

            Assert.Equal(1234, body[0].Id);
            Assert.Equal(55432, body[0].ProjectId);
            Assert.Equal(4765, body[0].UserId);
            Assert.Equal(17, body[0].Date.Day);
            Assert.Equal(5, body[0].Date.Month);
            Assert.Equal(2015, body[0].Date.Year);
            Assert.Equal(8, body[0].Hours);
            Assert.Equal("entry info", body[0].Info);

            Assert.Equal(5678, body[1].Id);
            Assert.Equal(55433, body[1].ProjectId);
            Assert.Equal(4765, body[1].UserId);
            Assert.Equal(18, body[1].Date.Day);
            Assert.Equal(5, body[1].Date.Month);
            Assert.Equal(2015, body[1].Date.Year);
            Assert.Equal(6, body[1].Hours);
            Assert.Equal("entry info", body[1].Info);
        }
        public void TestGet()
        {
            _testScenarioSupport.LoadTestScenario("jacks-test-scenario");

            var controller =
                new TimeEntryController(new TimeEntryDataGateway(new DatabaseTemplate(_dataSourceConfig)),
                                        new ProjectClient());
            var result = controller.Get(4765);

            // todo...
            Assert.Equal(2, ((List <TimeEntryInfo>)((ObjectResult)result).Value).Count);
        }
예제 #3
0
        public async Task TestTimeEntry()
        {
            var projectResults = await projectController.CreateProject(new ProjectCreateDTO()
            {
                ClientName  = "Test Client",
                Description = "Test Desciption",
                ProjectName = "Best project 10/10",
                Tags        = new List <string>()
                {
                    "AngryCarrot"
                }
            });

            database.ChangeTracker.Clear();

            var projectId = projectResults.Data;

            var testTimeEntry = new TimeEntryDTO()
            {
                Day       = new DateTime(1999, 6, 18),
                Length    = 5,
                Notes     = "Happy Birthday",
                ProjectId = projectId
            };

            // Create time
            var createTimeResults = await timeEntryController.CreateTime(testTimeEntry);

            Assert.IsTrue(createTimeResults.Success);
            Assert.IsTrue(createTimeResults.Data > 0);

            // Get the time entry
            var getCreatedTimeResults = await timeEntryController.Get(createTimeResults.Data);

            Assert.AreEqual(getCreatedTimeResults.Success, true);
            Assert.AreEqual(testTimeEntry.Day, getCreatedTimeResults.Data.Day);
            Assert.AreEqual(testTimeEntry.Length, getCreatedTimeResults.Data.Length);
            Assert.AreEqual(testTimeEntry.Notes, getCreatedTimeResults.Data.Notes);
            Assert.IsTrue(DateTime.UtcNow > getCreatedTimeResults.Data.CreatedTime);

            var updatedTimeEntry = new TimeEntryDTO()
            {
                Id     = createTimeResults.Data,
                Day    = new DateTime(1989, 10, 24),
                Notes  = "pewdiepie",
                Length = 5
            };

            // Update time
            var updateTimeResuls = await timeEntryController.UpdateTime(updatedTimeEntry);

            // Get the time entry
            var getUpdatedTimeResults = await timeEntryController.Get(updateTimeResuls.Data);

            Assert.AreEqual(getUpdatedTimeResults.Success, true);
            Assert.AreEqual(getUpdatedTimeResults.Data.Id, getCreatedTimeResults.Data.Id);
            Assert.AreEqual(updatedTimeEntry.Day, getUpdatedTimeResults.Data.Day);
            Assert.AreEqual(updatedTimeEntry.Length, getUpdatedTimeResults.Data.Length);
            Assert.AreEqual(updatedTimeEntry.Notes, getUpdatedTimeResults.Data.Notes);
            Assert.AreEqual(getUpdatedTimeResults.Data.CreatedTime, getCreatedTimeResults.Data.CreatedTime);
            Assert.IsTrue(getCreatedTimeResults.Data.LastModified < getUpdatedTimeResults.Data.LastModified);

            // Search for projects

            var singleDayNoResults = await timeEntryController.GetInDateRange(new DateRangeDTO()
            {
                StartDate = DateTime.Now,
                EndDate   = DateTime.Now
            });

            Assert.AreEqual(singleDayNoResults.Success, true);
            Assert.AreEqual(singleDayNoResults.Data.Count, 0);

            var singleDayResults = await timeEntryController.GetInDateRange(new DateRangeDTO()
            {
                StartDate = updatedTimeEntry.Day,
                EndDate   = updatedTimeEntry.Day
            });

            Assert.AreEqual(singleDayResults.Success, true);
            Assert.AreEqual(singleDayResults.Data.Count, 1);

            var multipleDayResults = await timeEntryController.GetInDateRange(new DateRangeDTO()
            {
                StartDate = updatedTimeEntry.Day.AddDays(-10),
                EndDate   = updatedTimeEntry.Day.AddDays(123)
            });

            Assert.AreEqual(multipleDayResults.Success, true);
            Assert.AreEqual(multipleDayResults.Data.Count, 1);
        }