예제 #1
0
 protected BaseWorkingDaysFixture(IWorkingDaysProvider provider, int softIterations, int heavyIterations, params DateTime[] baseDates)
 {
     Provider        = provider;
     SoftIterations  = softIterations;
     HeavyIterations = heavyIterations;
     BaseDates       = baseDates;
 }
예제 #2
0
        protected static void AssertProviderHeavy(IWorkingDaysProvider prov, int iterations, bool forward, bool consider, params DateTime[] baseDates)
        {
            foreach (var baseDate in baseDates)
            {
                WorkingDays w = new WorkingDays(prov);

                int one = forward ? 1 : -1;

                DateTime curr = baseDate;
                for (int i = 1; i <= iterations; i++)
                {
                    while (!w.IsWorkingDay(curr) || (!consider && curr == baseDate))
                    {
                        curr = curr.AddDays(one);
                    }

                    if (forward)
                    {
                        w.GetInAdvance(i, baseDate, consider).Should().Be(curr);
                    }
                    else
                    {
                        w.GetBackwards(i, baseDate, consider).Should().Be(curr);
                    }

                    curr = curr.AddDays(one);
                }
            }
        }
 protected BaseWorkingDaysFixture(IWorkingDaysProvider provider, int softIterations, int heavyIterations, params DateTime[] baseDates)
 {
     Provider = provider;
     SoftIterations = softIterations;
     HeavyIterations = heavyIterations;
     BaseDates = baseDates;
 }
예제 #4
0
        public static WorkingDays Get(IWorkingDaysProvider key)
        {
            WorkingDays w = null;
            if (!instances.TryGetValue(key, out w))
                instances[key] = w = new WorkingDays(key);

            return w;
        }
예제 #5
0
        // ReSharper disable once TooManyDependencies
        public VouchersUseCase(IEmployeeReader employeeReader, IVoucherWriter voucherWriter, IOutOfOfficeOperationsProvider outOfOfficeOperationsProvider, IWorkingDaysProvider workingDaysProvider)
        {
            this.employeeReader = employeeReader;
            this.voucherWriter  = voucherWriter;
            this.outOfOfficeOperationsProvider = outOfOfficeOperationsProvider;
            this.workingDaysProvider           = workingDaysProvider;

            vouchersService = new VouchersService();
        }
예제 #6
0
        public static WorkingDays Get(IWorkingDaysProvider key)
        {
            WorkingDays w = null;

            if (!instances.TryGetValue(key, out w))
            {
                instances[key] = w = new WorkingDays(key);
            }

            return(w);
        }
예제 #7
0
        protected static void AssertProviderSoft(IWorkingDaysProvider prov, int iterations, params DateTime[] baseDates)
        {
            foreach (var baseDate in baseDates)
            {
                int      count = 0;
                DateTime curr  = baseDate;
                for (int i = 0; i < iterations; i++)
                {
                    if (prov.IsWorkingDay(curr))
                    {
                        count++;
                    }

                    prov.GetNetWorkingDays(baseDate, curr).Should().Be(count);

                    curr = curr.AddDays(1);
                }
            }
        }
        protected static void AssertProviderHeavy(IWorkingDaysProvider prov, int iterations, bool forward, bool consider, params DateTime[] baseDates)
        {
            foreach (var baseDate in baseDates)
            {
                WorkingDays w = new WorkingDays(prov);

                int one = forward ? 1 : -1;

                DateTime curr = baseDate;
                for (int i = 1; i <= iterations; i++)
                {
                    while (!w.IsWorkingDay(curr) || (!consider && curr == baseDate))
                        curr = curr.AddDays(one);

                    if (forward)
                        w.GetInAdvance(i, baseDate, consider).Should().Be(curr);
                    else
                        w.GetBackwards(i, baseDate, consider).Should().Be(curr);

                    curr = curr.AddDays(one);
                }
            }
        }
예제 #9
0
 public WorkingDays(IWorkingDaysProvider provider)
 {
     this.provider = provider;
 }
예제 #10
0
 public WorkingDays(IWorkingDaysProvider provider)
 {
     this.provider = provider;
 }
예제 #11
0
        protected static void AssertProviderSoft(IWorkingDaysProvider prov, int iterations, params DateTime[] baseDates)
        {
            foreach (var baseDate in baseDates)
            {
                int count = 0;
                DateTime curr = baseDate;
                for (int i = 0; i < iterations; i++)
                {
                    if (prov.IsWorkingDay(curr))
                        count++;

                    prov.GetNetWorkingDays(baseDate, curr).Should().Be(count);

                    curr = curr.AddDays(1);
                }
            }
        }