Esempio n. 1
0
        public void AddOverlapTest()
        {
            var calendar = new ClockWorkUnitCollection(Worker, new ClockWorkUnit(DateTime.Today.AddHours(8), DateTime.Today.AddHours(17)))
            {
                new ClockWorkUnit(DateTime.Today.AddHours(4), DateTime.Today.AddHours(5))
            };

            Assert.Equal(2, calendar.Count);

            calendar.Add(new ClockWorkUnit(DateTime.Today.AddHours(7.5), DateTime.Today.AddHours(8.5)));
            Assert.Equal(2, calendar.Count);
            Assert.Equal(7.5, calendar.Last().Start.TimeOfDay.TotalHours);
            Assert.Equal(17, calendar.Last().End.TimeOfDay.TotalHours);

            calendar.Add(new ClockWorkUnit(DateTime.Today.AddHours(16.5), DateTime.Today.AddHours(17.5)));
            Assert.Equal(2, calendar.Count);
            Assert.Equal(7.5, calendar.Last().Start.TimeOfDay.TotalHours);
            Assert.Equal(17.5, calendar.Last().End.TimeOfDay.TotalHours);

            calendar.Add(new ClockWorkUnit(DateTime.Today.AddHours(7), DateTime.Today.AddHours(18)));
            Assert.Equal(2, calendar.Count);
            Assert.Equal(7, calendar.Last().Start.TimeOfDay.TotalHours);
            Assert.Equal(18, calendar.Last().End.TimeOfDay.TotalHours);

            calendar.Add(new ClockWorkUnit(DateTime.Today.AddHours(8), DateTime.Today.AddHours(17)));
            Assert.Equal(2, calendar.Count);
            Assert.Equal(7, calendar.Last().Start.TimeOfDay.TotalHours);
            Assert.Equal(18, calendar.Last().End.TimeOfDay.TotalHours);
        }
Esempio n. 2
0
        public void ExceptionTest()
        {
            var calendar = new ClockWorkUnitCollection(Worker, new ClockWorkUnit(DateTime.Today.AddHours(8), DateTime.Today.AddHours(17)));

            Assert.Throws <ArgumentNullException>(() => calendar.Add(null));
            Assert.Throws <ArgumentNullException>(() => calendar.Remove(null));
        }
Esempio n. 3
0
        public void CreateEmptyCollectionTest()
        {
            var calendar = new ClockWorkUnitCollection(Worker);

            Assert.Empty(calendar);
            calendar = new ClockWorkUnitCollection(Worker, null);
            Assert.Empty(calendar);
            calendar.Add(new ClockWorkUnit(DateTime.Today, DateTime.Now));
            Assert.NotEmpty(calendar);
        }
Esempio n. 4
0
        public void Test()
        {
            var unit     = new ClockWorkUnit(DateTime.Today.AddHours(8), DateTime.Today.AddHours(17)).PauseFor(30);
            var worker   = new ClockWorker("Mustermann", "Max", DateTime.Today.AddYears(-21));
            var calendar = new ClockWorkUnitCollection(worker, unit);

            IEffectiveWorkingTimeCalculator calculator = new StsWorkCalculator();
            var calculationResult = calculator.Calculate(calendar);

            Assert.Equal(TimeSpan.FromHours(8.5), calculationResult.CalculatedWorkedHours);
            Assert.Equal(TimeSpan.FromHours(8.5), calculationResult.ExactWorkedHours);

            calendar.Add(new ClockWorkUnit(new DateTime(2018, 10, 1, 7, 58, 10), new DateTime(2018, 10, 1, 16, 56, 20)));
            calculationResult = calculator.Calculate(calendar);
            Assert.Equal(TimeSpan.FromMinutes(1010), calculationResult.CalculatedWorkedHours);
            Assert.NotEqual(calculationResult.CalculatedWorkedHours, calculationResult.ExactWorkedHours);
        }
Esempio n. 5
0
        public void CollectionTest()
        {
            var calendar = new ClockWorkUnitCollection(Worker, new ClockWorkUnit(DateTime.Today.AddHours(8), DateTime.Today.AddHours(17)));

            calendar.Clear();

            Assert.Empty(calendar);

            calendar.Add(new ClockWorkUnit(DateTime.Today.AddHours(8), DateTime.Today.AddHours(17)));
            Assert.Contains(calendar.First(), calendar);

            var unitList = new ClockWorkUnit[10];

            calendar.CopyTo(unitList, 1);
            Assert.True(unitList.Skip(2).All(p => p == null));
            Assert.Null(unitList.First());
            Assert.Contains(unitList[1], calendar);

            calendar.Remove(unitList[1]);
            Assert.Empty(calendar);
        }