public async Task WorkingForNoon_Kua30_InPause()
        {
            var theDay = new DateTime(2020, 6, 22);

            ctx.TimeBookings.RemoveRange();
            await ctx.SaveChangesAsync();

            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(6).AddMinutes(3)
            });
            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(9).AddMinutes(0)
            });
            await ctx.SaveChangesAsync();

            theDay        = theDay.AddHours(10);
            var(awt, twt) = prepare(theDay);

            var sut = new InfoService2(awt, twt, config);

            var res = await sut.LoadInfoAsync(theDay);

            res.Worked.Should().Be(TimeSpan.FromHours(2).Add(TimeSpan.FromMinutes(57)));
            res.Pause.Should().Be(TimeSpan.Zero);
            res.PauseTargetDiff.Should().Be(TimeSpan.FromMinutes(-30));
            res.KuaActual.Should().Be(TimeSpan.FromMinutes(315));
            res.KuaDiff.Should().Be(TimeSpan.FromMinutes(227.25));
            res.VAZ.Should().Be(TimeSpan.Zero);
        }
Beispiel #2
0
        public async Task InOutInOutTooMuch()
        {
            var theDay = new DateTime(2020, 4, 20);

            ctx.TimeBookings.RemoveRange();
            await ctx.SaveChangesAsync();

            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(6).AddMinutes(3)
            });
            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(6).AddMinutes(13)
            });
            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(6).AddMinutes(23)
            });
            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(16).AddMinutes(23)
            });
            await ctx.SaveChangesAsync();

            var(awt, twt) = prepare(theDay);

            var sut = new InfoService2(awt, twt, config);

            var res = await sut.GoHomeAsync(theDay);

            res.Should().Be(theDay.AddHours(14).AddMinutes(5));
        }
Beispiel #3
0
        public async Task NoGoHomeNoIn()
        {
            var theDay = new DateTime(2020, 4, 15);

            var(awt, twt) = prepare(theDay);

            var sut = new InfoService2(awt, twt, config);

            var res = await sut.GoHomeAsync(theDay);

            res.Should().Be(DateTime.MinValue);
        }
        public async Task Kua30AlreadyHomeLessKua()
        {
            var theDay = new DateTime(2020, 6, 22);

            ctx.TimeBookings.RemoveRange();
            await ctx.SaveChangesAsync();

            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(6).AddMinutes(3)
            });
            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(9).AddMinutes(0)
            });
            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(9).AddMinutes(10)
            });
            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(11).AddMinutes(0)
            });
            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(11).AddMinutes(30)
            });
            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(14).AddMinutes(45)
            });
            await ctx.SaveChangesAsync();

            var(awt, twt) = prepare(theDay);

            var sut = new InfoService2(awt, twt, config);

            var res = await sut.LoadInfoAsync(theDay);

            res.Worked.Should().Be(TimeSpan.FromHours(8).Add(TimeSpan.FromMinutes(2)));
            res.Pause.Should().Be(TimeSpan.FromMinutes(30));
            res.PauseTargetDiff.Should().Be(TimeSpan.FromMinutes(10));
            res.KuaActual.Should().Be(TimeSpan.FromMinutes(10));
            res.KuaDiff.Should().Be(TimeSpan.FromMinutes(-77.75));
            res.VAZ.Should().Be(TimeSpan.Zero);
        }
Beispiel #5
0
        public async Task GoHomeNoCoronaFridayDayOnlyIn()
        {
            var theDay = new DateTime(2020, 4, 17);

            ctx.TimeBookings.RemoveRange();
            await ctx.SaveChangesAsync();

            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(6).AddMinutes(3)
            });
            await ctx.SaveChangesAsync();

            var(awt, twt) = prepare(theDay);

            var sut = new InfoService2(awt, twt, config);

            var res = await sut.GoHomeAsync(theDay);

            res.Should().Be(theDay.AddHours(11).AddMinutes(45));
        }
Beispiel #6
0
        public async Task GoHomeCoronaHolidayThursday70()
        {
            var theDay = new DateTime(2020, 6, 10);

            ctx.TimeBookings.RemoveRange();
            await ctx.SaveChangesAsync();

            ctx.TimeBookings.Add(new TimeBooking
            {
                BookingTime = theDay.AddHours(6).AddMinutes(3)
            });
            await ctx.SaveChangesAsync();

            var(awt, twt) = prepare(theDay);

            var sut = new InfoService2(awt, twt, config);

            var res = await sut.GoHomeAsync(theDay);

            res.Should().Be(theDay.AddHours(10).AddMinutes(24));
        }