示例#1
0
        public void TaskRepository_InsertTaskWithTimeReports()
        {
            var actual = Task;

            var timeReport1 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today,
                TimeWorked = 7.5
            };

            var timeReport2 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today.AddDays(-1),
                TimeWorked = 1
            };

            actual.TimeReports.Add(timeReport1);
            actual.TimeReports.Add(timeReport2);

            SystemUnderTest.Insert(actual);

            Assert.True(actual.Id != 0, "Task id should not be 0.");
            Assert.True(actual.TimeReports.ElementAt(0).Id != 0, "Task timeReport #0 id should not be 0.");
            Assert.True(actual.TimeReports.ElementAt(1).Id != 0, "Task timeReport #1 id should not be 0.");
        }
示例#2
0
        public void TaskRepository_InsertTaskWithTimeReports_UpdateTaskAndTimeReports()
        {
            var expected = Task;

            var timeReport1 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today,
                TimeWorked = 7.5
            };

            var timeReport2 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today.AddDays(-1),
                TimeWorked = 1
            };

            expected.TimeReports.Add(timeReport1);
            expected.TimeReports.Add(timeReport2);

            SystemUnderTest.Insert(expected);

            expected.Name          = "modified";
            timeReport1.TimeWorked = 3;
            timeReport2.TimeWorked = 3;

            SystemUnderTest.Update(expected);

            systemUnderTest = null;

            var actual = SystemUnderTest.Get(expected.Id);

            Assert.Equal(expected.Name, actual.Name);
            Assert.Equal(2, actual.TimeReports.Count);
            Assert.All(actual.TimeReports, report => Assert.Equal(3, report.TimeWorked));
        }
示例#3
0
        public void TaskRepository_InsertTaskWithTimeReport_DeleteTimeReport()
        {
            // Arrange
            var expected = Task;

            var timeReport1 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today,
                TimeWorked = 7.5
            };
            var timeReport2 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today,
                TimeWorked = 6
            };

            expected.TimeReports.Add(timeReport1);
            expected.TimeReports.Add(timeReport2);

            SystemUnderTest.Insert(expected);

            Assert.True(expected.Id != 0, "Task id should not be 0.");

            // Act
            expected.TimeReports.Remove(timeReport1);
            SystemUnderTest.Update(expected);

            systemUnderTest = null;

            // Assert
            var actual = SystemUnderTest.Get(expected.Id);

            Assert.Equal(1, actual.TimeReports.Count);
        }
示例#4
0
        private void Ef_SaveTaskWithTimeReport_MultipleTimeReports()
        {
            var task = Task;

            var timeReport1 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today,
                TimeWorked = 1.5
            };

            var timeReport2 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today.AddDays(-1),
                TimeWorked = 4
            };

            task.TimeReports.Add(timeReport1);
            task.TimeReports.Add(timeReport2);

            SystemUnderTest.Tasks.Add(task);
            SystemUnderTest.SaveChanges();

            Assert.True(task.Id != 0, "Task id should not be 0.");
            Assert.True(task.TimeReports.ElementAt(0).Id != 0, "Task timeReport #0 id should not be 0.");
            Assert.True(task.TimeReports.ElementAt(1).Id != 0, "Task timeReport #1 id should not be 0.");
        }
示例#5
0
        private void Ef_LoadTaskWithTimeReports_UsingFreshDbContext()
        {
            var expectedTask = Task;

            var timeReport1 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today,
                TimeWorked = 5.5
            };

            var timeReport2 = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today.AddDays(-1),
                TimeWorked = 0.5
            };

            expectedTask.TimeReports.Add(timeReport1);
            expectedTask.TimeReports.Add(timeReport2);

            SystemUnderTest.Tasks.Add(expectedTask);
            SystemUnderTest.SaveChanges();

            // Create fresh db context
            systemUnderTest = null;

            var actualTask = SystemUnderTest.Tasks.Include(t => t.TimeReports).FirstOrDefault(t => t.Id == expectedTask.Id);

            Assert.NotNull(actualTask);
            Assert.NotNull(actualTask.TimeReports);
            Assert.NotEmpty(actualTask.TimeReports);
            Assert.Equal(2, actualTask.TimeReports.Count);
            Assert.All(actualTask.TimeReports, Assert.NotNull);
        }
示例#6
0
 private void AssertEqual(Data.Entities.TimeReport report, TimeReportModel reportModel)
 {
     Assert.Equal(report.Id, reportModel.Id);
     Assert.Equal(report.TimeWorked, reportModel.TimeWorkedInHours);
     Assert.Equal(report.Date, reportModel.Date);
     Assert.Equal(report.DateCreated, reportModel.DateCreated);
     Assert.Equal(report.DateModified, reportModel.DateModified);
 }
示例#7
0
        private void Ef_SaveTaskWithTimeReport_SingleTimeReport()
        {
            var task = Task;

            var timeReport = new Data.Entities.TimeReport
            {
                Date       = DateTime.Today,
                TimeWorked = 1.5
            };

            task.TimeReports.Add(timeReport);

            SystemUnderTest.Tasks.Add(task);
            SystemUnderTest.SaveChanges();

            Assert.True(task.Id != 0, "Task id should not be 0.");
            Assert.True(task.TimeReports.Single().Id != 0, "Task timeReport id should not be 0.");
        }