public void TryDistributeTotalInput_ClientHourRegistrationHoursAreUpdatedAsExpected()
        {
            // Arrange
            new DispatcherFrame();
            var headerClient = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 1))
            {
                ForecastTypeRegistration = new ForecastTypeRegistration(ForecastTestData.ProjectHoursOnlyForecastType, null)
            };

            var headerOpen = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 2))
            {
                ForecastTypeRegistration = new ForecastTypeRegistration(ForecastTestData.DedicatedAndProjectHoursForcastType, null)
            };

            var sut = new ProjectRegistration {
                Registrations = new ObservableCollection <ProjectHourRegistration>()
            };

            AddClientHourRegistration(sut, headerClient, 7.5m);
            AddClientHourRegistration(sut, headerOpen, 4);

            // Act
            sut.TryDistributeTotalInput("14");

            // Assert
            Assert.That(sut.Registrations.Single(x => x.SelectedPresencetypeSupportsProjectHoursOnly()).Hours, Is.EqualTo(7));
            Assert.That(sut.Registrations.Single(x => x.SelectedPresencetypeSupportsDedicatedHours).Hours, Is.EqualTo(7));
        }
        private void AddDateColumnWithClientRegistration(ProjectRegistration projectRegistration, decimal hours, bool isEditEnabled)
        {
            var dateColumn             = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 1));
            var clientHourRegistration = new ProjectHourRegistration(projectRegistration)
            {
                Hours         = hours,
                IsEditEnabled = isEditEnabled
            };

            dateColumn.AddProjectHours(clientHourRegistration);
            projectRegistration.Registrations.Add(clientHourRegistration);
        }
        public void SetToHoliday_HolidayToSetFromHasDifferentDate_ThrowsException()
        {
            // Arrange
            var holiday = new HolidayDto {
                Date = new DateTime(2013, 1, 1), Description = "buuh"
            };
            var dateItem = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 2));

            // Act
            var error = Assert.Throws <Exception>(() => dateItem.SetToHoliday(holiday));

            // Assert
            Assert.That(error.Message, Is.EqualTo("Holiday buuh does not have same date as 02-01-2013"));
        }
        public void SetToHoliday_HolidayHasSameDateAsDateItem_HolidayDescriptionGetValue()
        {
            // Arrange
            var holiday = new HolidayDto {
                Date = new DateTime(2013, 1, 1), Description = "buuh"
            };
            var dateItem = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 1));

            // Act
            dateItem.SetToHoliday(holiday);

            // Assert
            Assert.That(dateItem.IsHoliday, Is.True);
            Assert.That(dateItem.HolidayDesciption, Is.EqualTo("buuh"));
        }
        public void AddPresenceRegistration_PresenceRegistrationIsAddedToCollection()
        {
            // Arrange
            new DispatcherFrame();

            var sut = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 1));

            // Act
            var presenceReg = new ForecastTypeRegistration(ForecastTestData.ProjectHoursOnlyForecastType, new List <ForecastType>());

            sut.ForecastTypeRegistration = presenceReg;

            // Assert
            Assert.That(sut.ForecastTypeRegistration, Is.EqualTo(presenceReg));
        }
Beispiel #6
0
        public void IsEmptyProjectRegistration_IsTypeProjectAndHasProjectHours_ReturnsFalse()
        {
            // Arrange
            var frame = new DispatcherFrame();
            var sut   = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 1))
            {
                ForecastTypeRegistration =
                    new ForecastTypeRegistration(ForecastTestData.ProjectHoursOnlyForecastType,
                                                 ForecastTestData.ForecastTypesList)
            };

            sut.AddProjectHours(new ProjectHourRegistration(new ProjectRegistration()));

            // Act
            var result = sut.IsEmptyProjectRegistration(ForecastTestData.ProjectHoursOnlyForecastType.Id);

            // Assert
            Assert.That(result, Is.False);
        }
        private IEnumerable <ProjectHourRegistration> CreateHoursForMonth(int month, int year, decimal defaultHours, ProjectRegistration parent)
        {
            var result = new List <ProjectHourRegistration>();
            var day    = new DateTime(year, month, 1);

            while (day.Month == month)
            {
                if (!day.IsWeekend())
                {
                    var dateColumn = new ForecastRegistrationDateColumn(day);
                    var hourReg    = new ProjectHourRegistration(parent)
                    {
                        Hours = defaultHours
                    };
                    dateColumn.AddProjectHours(hourReg);
                    result.Add(hourReg);
                }

                day = day.AddDays(1);
            }
            return(result);
        }
Beispiel #8
0
        private ForecastDateColumns CreateDateHeaders()
        {
            var dates  = GenereateDatesForMonth(4, 2013);
            var result = new ForecastDateColumns();

            foreach (var date in dates)
            {
                var newItem = new ForecastRegistrationDateColumn(date);

                // Set a couple of days to be holiday
                if (date.Day == 2 || date.Day == 3)
                {
                    var holiday = new HolidayDto {
                        Date = date, Description = "Holiday"
                    };
                    newItem.SetToHoliday(holiday);
                }
                result.Add(newItem);
            }

            return(result);
        }
        public void CalculateTotal_SumsClinetHourRegistrationsAndForecastTypeDedidcatedHours()
        {
            // Arrange
            new DispatcherFrame();

            var fixture   = InitializeFixture();
            var clientReg = fixture.Create <ProjectRegistration>();

            var sut = new ForecastRegistrationDateColumn(new DateTime(2013, 1, 1));

            AddClientHourRegistration(clientReg, sut, 3);
            AddClientHourRegistration(clientReg, sut, 4);
            sut.ForecastTypeRegistration = new ForecastTypeRegistration(ForecastTestData.DedicatedAndProjectHoursForcastType, ForecastTestData.ForecastTypesList)
            {
                DedicatedHours = 1
            };

            // Act
            sut.CalculateTotal();

            // Assert
            Assert.That(sut.DateTotal.Hours, Is.EqualTo(8));
        }
        private static void AddClientHourRegistration(ProjectRegistration projectRegistration, ForecastRegistrationDateColumn dateColumn, decimal hours)
        {
            var clientHourReg = new ProjectHourRegistration(projectRegistration)
            {
                Hours = hours
            };

            dateColumn.AddProjectHours(clientHourReg);
            projectRegistration.Registrations.Add(clientHourReg);
        }
Beispiel #11
0
 public void CalculateTotals(ForecastRegistrationDateColumn dateItem)
 {
     throw new NotImplementedException();
 }