public void CalculateRequiredIssue_NextIssueIsNullCase()
        {
            var baseParameters = Substitute.For <BaseParameters>();

            baseParameters.ColDayAheadOfShedule.Returns(0);

            var norm = new NormItem {
                Amount = 2
            };
            var item = new EmployeeCardItem {
                ActiveNormItem = norm,
                Amount         = 2,
                LastIssue      = DateTime.Today.AddDays(-30),
                NextIssue      = null
            };

            Assert.That(item.CalculateRequiredIssue(baseParameters), Is.EqualTo(0));
        }
        public void CalculateRequiredIssue_ReciveBeforeExpiredCase()
        {
            var baseParameters = Substitute.For <BaseParameters>();

            baseParameters.ColDayAheadOfShedule.Returns(30);

            var norm = new NormItem {
                Amount = 1
            };
            var item = new EmployeeCardItem {
                ActiveNormItem = norm,
                Amount         = 1,
                LastIssue      = DateTime.Today.AddMonths(-5),
                NextIssue      = DateTime.Today.AddDays(-10)
            };

            Assert.That(item.CalculateRequiredIssue(baseParameters), Is.EqualTo(1));
        }
        public void CalculateRequiredIssue_RecivedPartCase()
        {
            var baseParameters = Substitute.For <BaseParameters>();

            baseParameters.ColDayAheadOfShedule.Returns(0);

            var norm = new NormItem {
                Amount = 4
            };
            //FIXME Возможно некоректная ситуация, надо подумать как в этом месте будет более правильно поставить дату следующей выдачи
            var item = new EmployeeCardItem {
                ActiveNormItem = norm,
                Amount         = 1,
                LastIssue      = DateTime.Today.AddDays(-30),
                NextIssue      = DateTime.Today.AddDays(30)
            };

            Assert.That(item.CalculateRequiredIssue(baseParameters), Is.EqualTo(3));
        }