Example #1
0
        public ReturnQuarterWindow(Return @return,
                                   QuarterWindow quarterWindow,
                                   List <Aatf> aatfs, List <NonObligatedWeee> nonObligatedWeeeList,
                                   List <WeeeReceivedAmount> obligatedReceivedList,
                                   List <WeeeReusedAmount> obligatedReusedList,
                                   Organisation organisation,
                                   List <WeeeSentOnAmount> obligatedSentOnList,
                                   List <ReturnScheme> returnSchemes,
                                   List <ReturnReportOn> returnReportOns,
                                   DateTime systemDateTime)
        {
            Guard.ArgumentNotNull(() => @return, @return);
            Guard.ArgumentNotNull(() => quarterWindow, quarterWindow);
            Guard.ArgumentNotNull(() => returnSchemes, returnSchemes);

            this.Return                    = @return;
            this.QuarterWindow             = quarterWindow;
            this.Aatfs                     = aatfs;
            this.NonObligatedWeeeList      = nonObligatedWeeeList;
            this.ObligatedWeeeReceivedList = obligatedReceivedList;
            this.ObligatedWeeeReusedList   = obligatedReusedList;
            this.Organisation              = organisation;
            this.ObligatedWeeeSentOnList   = obligatedSentOnList;
            this.ReturnSchemes             = returnSchemes;
            this.ReturnReportOns           = returnReportOns;
            this.SystemDateTime            = systemDateTime;
        }
Example #2
0
        public void Constructor_GivenQuarterFourConstructorParameters_QuarterStartEndPropertiesShouldBeSet()
        {
            var quarter = new QuarterWindow(Convert.ToDateTime(Q4), windowClosedDate, QuarterType.Q4);

            quarter.QuarterStart.Should().Be(new DateTime(2018, 10, 1));
            quarter.QuarterEnd.Should().Be(new DateTime(2018, 12, 31));
        }
Example #3
0
        public void Constructor_GivenConstructorParameters_PropertiesShouldBeSet(DateTime windowOpenDate, QuarterType quarterType)
        {
            var quarter = new QuarterWindow(windowOpenDate, windowClosedDate, quarterType);

            quarter.QuarterType.Should().Be(quarterType);
            quarter.WindowOpenDate.Should().Be(windowOpenDate);
            quarter.WindowClosedDate.Should().Be(windowClosedDate);
        }
Example #4
0
        public void IsOpen_DayBeforeReportingWindowOpens_ReturnsFalse(DateTime windowOpenDate, int currentDay, int currentMonth, QuarterType quarterType)
        {
            var quarter = new QuarterWindow(windowOpenDate, windowClosedDate, quarterType);
            var date    = new DateTime(2018, currentMonth, currentDay);

            var result = quarter.IsOpen(date);

            result.Should().BeFalse();
        }
Example #5
0
        public void IsOpen_DayAfterReportingWindowCloses_ReturnsFalse(DateTime windowOpenDate, QuarterType quarterType)
        {
            var quarter = new QuarterWindow(windowOpenDate, windowClosedDate, quarterType);

            var date = new DateTime(2019, 03, 17);

            var result = quarter.IsOpen(date);

            result.Should().BeFalse();
        }
Example #6
0
        public void IsOpen_DayReportingWindowOpens_ReturnsTrue(DateTime windowOpenDate, int currentMonth, int currentYear, QuarterType quarterType)
        {
            var quarter = new QuarterWindow(windowOpenDate, windowClosedDate, quarterType);

            var date = new DateTime(currentYear, currentMonth, 01);

            var result = quarter.IsOpen(date);

            result.Should().BeTrue();
        }
Example #7
0
        public void Map_GivenSource_QuarterPropertiesShouldBeMapped()
        {
            QuarterWindow window = new QuarterWindow(new DateTime(2019, 4, 1), new DateTime(2020, 3, 16), QuarterType.Q1);
            var           source = new ReturnQuarterWindow(GetReturn(), window,
                                                           null, null, null, null, null, null, A.Fake <List <ReturnScheme> >(), A.Fake <List <ReturnReportOn> >(), A.Dummy <DateTime>());

            var result = map.Map(source);

            result.Quarter.Q.Should().Be(EA.Weee.Core.DataReturns.QuarterType.Q1);
            result.Quarter.Year.Should().Be(2019);
        }
Example #8
0
        public void CurrentDateTimeIsExactlyWindowStartDate_IsNotBeforeWindow()
        {
            var startDate   = new DateTime(2016, 04, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 04, 01, 0, 0, 0);

            var quarterWindow = new QuarterWindow(startDate, A.Dummy <DateTime>(), QuarterType.Q1);

            var result = quarterWindow.IsBeforeWindow(currentDate);

            Assert.False(result);
        }
        public void CurrentDateTimeIsExactlyWindowStartDate_IsNotBeforeWindow()
        {
            var startDate = new DateTime(2016, 04, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 04, 01, 0, 0, 0);

            var quarterWindow = new QuarterWindow(startDate, A.Dummy<DateTime>());

            var result = quarterWindow.IsBeforeWindow(currentDate);

            Assert.False(result);
        }
        public void CurrentDateTimeIsOneSecondBeforeDayAfterWindowEndDate_IsNotAfterWindow()
        {
            var endDate = new DateTime(2016, 07, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 07, 01, 23, 59, 59);

            var quarterWindow = new QuarterWindow(A.Dummy<DateTime>(), endDate);

            var result = quarterWindow.IsAfterWindow(currentDate);

            Assert.False(result);
        }
Example #11
0
        public void CurrentDateTimeIsOneSecondBeforeWindowOpens_IsBeforeWindow()
        {
            var startDate   = new DateTime(2016, 04, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 03, 31, 23, 59, 59);

            var quarterWindow = new QuarterWindow(startDate, A.Dummy <DateTime>(), QuarterType.Q1);

            var result = quarterWindow.IsBeforeWindow(currentDate);

            Assert.True(result);
        }
        public GetAatfApprovalDateChangeStatusTests()
        {
            aatfDataAccess         = A.Fake <IAatfDataAccess>();
            quarterWindowFactory   = A.Fake <IQuarterWindowFactory>();
            organisationDataAccess = A.Fake <IOrganisationDataAccess>();
            quarterWindow          = new QuarterWindow(DateTime.MaxValue, DateTime.MaxValue, QuarterType.Q1);

            getAatfApprovalDateChangeStatus = new GetAatfApprovalDateChangeStatus(aatfDataAccess, quarterWindowFactory, organisationDataAccess);

            fixture = new Fixture();
        }
        public void CurrentDateTimeExactlyOneDayAfterWindowEndDate_IsAfterWindow()
        {
            var endDate = new DateTime(2016, 07, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 07, 02, 0, 0, 0);

            var quarterWindow = new QuarterWindow(A.Dummy<DateTime>(), endDate);

            var result = quarterWindow.IsAfterWindow(currentDate);

            Assert.True(result);
        }
        public void CurrentDateTimeIsOneSecondBeforeWindowOpens_IsBeforeWindow()
        {
            var startDate = new DateTime(2016, 04, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 03, 31, 23, 59, 59);

            var quarterWindow = new QuarterWindow(startDate, A.Dummy<DateTime>());

            var result = quarterWindow.IsBeforeWindow(currentDate);

            Assert.True(result);
        }
Example #15
0
        public void CurrentDateTimeExactlyOneDayAfterWindowEndDate_IsAfterWindow()
        {
            var endDate     = new DateTime(2016, 07, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 07, 02, 0, 0, 0);

            var quarterWindow = new QuarterWindow(A.Dummy <DateTime>(), endDate, QuarterType.Q1);

            var result = quarterWindow.IsAfterWindow(currentDate);

            Assert.True(result);
        }
Example #16
0
        public void CurrentDateTimeIsOneSecondBeforeDayAfterWindowEndDate_IsNotAfterWindow()
        {
            var endDate     = new DateTime(2016, 07, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 07, 01, 23, 59, 59);

            var quarterWindow = new QuarterWindow(A.Dummy <DateTime>(), endDate, QuarterType.Q1);

            var result = quarterWindow.IsAfterWindow(currentDate);

            Assert.False(result);
        }
Example #17
0
        public void CurrentDateTimeNotWithinStartDateAndEndDate_IsNotInWindow()
        {
            var startDate   = new DateTime(2016, 04, 01, 0, 0, 0);
            var endDate     = new DateTime(2016, 07, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 03, 02, 0, 0, 0);

            var quarterWindow = new QuarterWindow(startDate, endDate, QuarterType.Q1);

            var result = quarterWindow.IsInWindow(currentDate);

            Assert.False(result);
        }
        public void CurrentDateTimeNotWithinStartDateAndEndDate_IsNotInWindow()
        {
            var startDate = new DateTime(2016, 04, 01, 0, 0, 0);
            var endDate = new DateTime(2016, 07, 01, 0, 0, 0);
            var currentDate = new DateTime(2016, 03, 02, 0, 0, 0);

            var quarterWindow = new QuarterWindow(startDate, endDate);

            var result = quarterWindow.IsInWindow(currentDate);

            Assert.False(result);
        }
Example #19
0
 public ReturnToReturnViewModelMapTests()
 {
     map                             = new ReturnToReturnViewModelMap(new TonnageUtilities());
     mapperTestId                    = Guid.NewGuid();
     mapperTestYear                  = 2019;
     mapperTestQuarter               = new Quarter(mapperTestYear, QuarterType.Q1);
     mapperTestQuarterWindow         = new QuarterWindow(new DateTime(mapperTestYear, 4, 1), new DateTime(mapperTestYear + 1, 3, 31), QuarterType.Q1);
     mapperTestPeriod                = "Q1 Jan - Mar";
     mapperTestNonObligatedData      = new List <NonObligatedData>();
     mapperTestObligatedReceivedData = new List <WeeeObligatedData>();
     mapperTestObligatedReusedData   = new List <WeeeObligatedData>();
     mapperTestObligatedSentOnData   = new List <WeeeObligatedData>();
     mapperTestScheme                = new Scheme(Guid.NewGuid(), "Test Scheme");
     mapperTestAatf                  = new AatfData(mapperTestId, "Test Aatf", "Aatf approval", (Int16)2019);
     mapperTestAatfList              = new List <AatfData>();
 }
Example #20
0
        protected ReturnViewModelBase(ReturnData returnData)
        {
            Guard.ArgumentNotNull(() => returnData, returnData);
            Guard.ArgumentNotNull(() => returnData.Quarter, returnData.Quarter);
            Guard.ArgumentNotNull(() => returnData.QuarterWindow, returnData.QuarterWindow);

            this.QuarterWindow   = returnData.QuarterWindow;
            this.QuarterInstance = returnData.Quarter;
            this.year            = returnData.Quarter.Year;
            this.CreatedBy       = returnData.CreatedBy;
            this.CreatedDate     = returnData.CreatedDate.ToString("dd/MM/yyyy HH:mm:ss");
            this.SubmittedBy     = string.IsNullOrWhiteSpace(returnData.SubmittedBy) ? "-" : returnData.SubmittedBy;
            this.SubmittedDate   = returnData.SubmittedDate.HasValue ? returnData.SubmittedDate.Value.ToString("dd/MM/yyyy HH:mm:ss") : "-";
            this.ReturnStatus    = returnData.ReturnStatus;
            this.ReturnId        = returnData.Id;
        }
        public async void GetNextQuarterWindow_CurrentIsQ1_ReturnsQ2()
        {
            Quarter quarter = new Quarter(2019, QuarterType.Q1);
            QuarterWindowTemplate quarterWindowTemplate = QuarterWindowTemplate(7, 1, 0, 1);

            A.CallTo(() => dataAccess.GetByQuarter(((int)quarter.Q) + 1)).Returns(quarterWindowTemplate);

            QuarterWindow result = await quarterWindowFactory.GetNextQuarterWindow(QuarterType.Q1, 2019);

            result.StartDate.Year.Should().Be(2019);
            result.StartDate.Month.Should().Be(07);
            result.StartDate.Day.Should().Be(01);
            result.EndDate.Year.Should().Be(2020);
            result.EndDate.Month.Should().Be(03);
            result.EndDate.Day.Should().Be(16);
            Assert.Equal(QuarterType.Q2, result.QuarterType);
        }
Example #22
0
        public async Task GetReturnQuarter_GivenQuarter1OpenWindow_HasReturnQuarterIsTrue_NullShouldBeReturned()
        {
            var organisationId = Guid.NewGuid();
            var startDate      = new DateTime(2019, 4, 1);
            var quarterWindow  = new QuarterWindow(startDate, new DateTime(2019, 7, 16), QuarterType.Q1);

            A.CallTo(() => quarterWindowFactory.GetQuarterWindowsForDate(A <DateTime> ._)).Returns(new List <QuarterWindow>()
            {
                quarterWindow
            });
            A.CallTo(() => returnFactoryDataAccess.ValidateAatfApprovalDate(A <Guid> ._, A <DateTime> ._, A <int> ._, A <FacilityType> ._)).Returns(true);
            A.CallTo(() => returnFactoryDataAccess.HasReturnQuarter(organisationId, 2019, QuarterType.Q1, FacilityType.Aatf)).Returns(true);

            var result = await returnFactory.GetReturnQuarter(organisationId, FacilityType.Aatf);

            result.Should().BeNull();
        }
Example #23
0
        public void ReturnsData_GivenConstructorParameters_PropertiesShouldBeMapped()
        {
            var            returnsList   = new List <ReturnData>();
            var            returnQuarter = new Quarter(2019, QuarterType.Q1);
            List <Quarter> openQuarters  = new List <Quarter>()
            {
                returnQuarter
            };

            QuarterWindow nextQuarter = new QuarterWindow(new DateTime(2020, 4, 1), new DateTime(2020, 7, 16), QuarterType.Q1);

            var returnsData = new ReturnsData(returnsList, returnQuarter, openQuarters, nextQuarter, DateTime.Now);

            returnsData.ReturnsList.Should().BeEquivalentTo(returnsList);
            returnsData.ReturnQuarter.Should().Be(returnQuarter);
            returnsData.OpenQuarters.Count.Should().Be(openQuarters.Count);
            returnsData.NextWindow.Should().Be(nextQuarter);
        }
Example #24
0
        public void Map_GivenSystemDateTime_SystemDateTimePropertyShouldBeMapped()
        {
            var date = new DateTime(2019, 4, 1);

            var           @returnQuarterWindow = A.Fake <ReturnQuarterWindow>();
            QuarterWindow window = new QuarterWindow(date, date.AddMonths(3), QuarterType.Q1);
            Return        ret    = A.Fake <Return>();

            Quarter q = new Quarter(2018, QuarterType.Q1);

            A.CallTo(() => ret.Quarter).Returns(q);

            A.CallTo(() => @returnQuarterWindow.SystemDateTime).Returns(date);
            A.CallTo(() => @returnQuarterWindow.QuarterWindow).Returns(window);
            A.CallTo(() => @returnQuarterWindow.Return).Returns(ret);

            var result = map.Map(@returnQuarterWindow);

            result.SystemDateTime.Should().Be(date);
        }
        public async Task<List<QuarterWindow>> GetQuarterWindowsForDate(DateTime date)
        {
            var possibleComplianceYears = new int[] { date.Year - 1, date.Year, date.Year + 1 };
            var possibleQuarterWindows = new List<QuarterWindow>();

            var allQuarterWindowTemplates = await dataAccess.GetAll();

            foreach (var possibleComplianceYear in possibleComplianceYears)
            {
                foreach (var item in allQuarterWindowTemplates)
                {
                    var startDate = new DateTime(possibleComplianceYear + item.AddStartYears, item.StartMonth, item.StartDay);
                    var endDate = new DateTime(possibleComplianceYear + item.AddEndYears, item.EndMonth, item.EndDay);

                    var quarterWindow = new QuarterWindow(startDate, endDate);

                    if (quarterWindow.IsInWindow(date))
                    {
                        possibleQuarterWindows.Add(new QuarterWindow(startDate, endDate));
                    }
                }
            }
            return possibleQuarterWindows;
        }
Example #26
0
        public async Task <List <QuarterWindow> > GetQuarterWindowsForDate(DateTime date)
        {
            var possibleComplianceYears = new int[] { date.Year - 1, date.Year, date.Year + 1 };
            var possibleQuarterWindows  = new List <QuarterWindow>();

            var allQuarterWindowTemplates = await dataAccess.GetAll();

            foreach (var possibleComplianceYear in possibleComplianceYears)
            {
                foreach (var item in allQuarterWindowTemplates)
                {
                    var startDate = new DateTime(possibleComplianceYear + item.AddStartYears, item.StartMonth, item.StartDay);
                    var endDate   = new DateTime(possibleComplianceYear + item.AddEndYears, item.EndMonth, item.EndDay);

                    var quarterWindow = new QuarterWindow(startDate, endDate, (QuarterType)item.Quarter);

                    if (quarterWindow.IsInWindow(date))
                    {
                        possibleQuarterWindows.Add(new QuarterWindow(startDate, endDate, (QuarterType)item.Quarter));
                    }
                }
            }
            return(possibleQuarterWindows);
        }
Example #27
0
 public static string QuarterPeriodFormat(string quarter, QuarterWindow quarterWindow)
 {
     return
         ($"{quarter} {quarterWindow.QuarterStart.ToString("MMM", CultureInfo.CurrentCulture)} - {quarterWindow.QuarterEnd.ToString("MMM", CultureInfo.CurrentCulture)}");
 }
Example #28
0
 public static string YearQuarterPeriodFormat(Quarter quarter, QuarterWindow quarterWindow)
 {
     return(quarter != null & quarterWindow != null ? $"{string.Concat(quarter.Year, " ", quarter.Q)} {quarterWindow.QuarterStart.ToString("MMM", CultureInfo.CurrentCulture)} - {quarterWindow.QuarterEnd.ToString("MMM", CultureInfo.CurrentCulture)}" : string.Empty);
 }