コード例 #1
0
        public void GetCountryPublicHolidayByYear_WithInvalidParameters_ReturnNull()
        {
            // Arrange
            IPublicHolidaysService publicHolidaysService = new PublicHolidaysService();
            PublicHolidaysBL       publicHolidaysBL      = new PublicHolidaysBL(publicHolidaysService);

            // Act
            var result = publicHolidaysBL.GetCountryPublicHolidayByYear(-2019);

            // Assert
            Assert.IsNull(result);
        }
コード例 #2
0
        public void GetCountryPublicHolidayByYear_WithValidParameters_ReturnExpectedResult()
        {
            // Arrange
            IPublicHolidaysService publicHolidaysService = new PublicHolidaysService();
            PublicHolidaysBL       publicHolidaysBL      = new PublicHolidaysBL(publicHolidaysService);

            // Act
            var result = publicHolidaysBL.GetCountryPublicHolidayByYear(2019);

            // Assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Count, 92);
        }
コード例 #3
0
        public async Task TestPublicHolidaysServiceYearCutOver()
        {
            // arrange
            var service = new PublicHolidaysService();
            var start   = new DateTime(2018, 12, 23);
            var end     = new DateTime(2019, 1, 2);

            // act
            var result = await service.GetEvents(start, end);

            // assert
            Assert.IsNotNull(result);
            Assert.AreEqual(result.Count, 3);
        }
コード例 #4
0
        public void GetPublicHolidaysByYear_WithInvalidParameters_ReturnExceptionResult()
        {
            // Arrange
            PublicHolidaysService publicHolidaysService = new PublicHolidaysService();

            // Act
            var result = publicHolidaysService.GetPublicHolidaysByYear(-2019);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Result);
            Assert.IsFalse(result.Result.Status);
            Assert.IsNull(result.Result.CountryPublicHolidays);
            Assert.IsNotNull(result.Result.ExceptionMessage);
        }
コード例 #5
0
        public void GetPublicHolidaysByYear_WithValidParameters_ReturnExpectedResult()
        {
            // Arrange
            PublicHolidaysService publicHolidaysService = new PublicHolidaysService();

            // Act
            var result = publicHolidaysService.GetPublicHolidaysByYear(2019);

            // Assert
            Assert.IsNotNull(result);
            Assert.IsNotNull(result.Result);
            Assert.IsTrue(result.Result.Status);
            Assert.IsNotNull(result.Result.CountryPublicHolidays);
            Assert.AreEqual(result.Result.CountryPublicHolidays.Count, 92);
        }
コード例 #6
0
        public static async Task <System.Collections.Generic.List <Models.CalendarEntry> > GetCalendars(TokenEntity msaToken, TokenEntity googleToken,
                                                                                                        ILogger logger)
        {
            var start  = DateTime.Now.Date.AddDays(-7);
            var end    = DateTime.Now.Date.AddDays(Constants.CalendarWeeks * 7);
            var events = new System.Collections.Generic.List <CalendarEntry>();

            try
            {
                var holidays = new System.Collections.Generic.List <CalendarEntry>();

                // combine public and school holidays
                var publicHolidaysService = new PublicHolidaysService();
                var schoolHolidaysService = new SchoolHolidaysService();

                holidays.AddRange(await publicHolidaysService.GetEvents(start, end));
                holidays.AddRange(await schoolHolidaysService.GetEvents(start, end, logger));
                var deduplicatedHolidays = holidays.GroupBy(x => x.Date).Select(y => y.First()).ToList <CalendarEntry>();
                events.AddRange(deduplicatedHolidays);

                var googleCalendarService = new GoogleCalendarService(
                    googleToken,
                    calendarId: Util.GetEnvironmentVariable("GOOGLE_CALENDAR_ID"),
                    timeZone: Util.GetEnvironmentVariable("CALENDAR_TIMEZONE"));
                var googleEvents = await googleCalendarService.GetEvents(start, end, isPrimary : true);

                events.AddRange(googleEvents);

                var outlookCalendarService = new OutlookCalendarService(msaToken,
                                                                        timeZone: Util.GetEnvironmentVariable("CALENDAR_TIMEZONE"));
                var outlookEvents = await outlookCalendarService.GetEvents(start, end, isSecondary : true);

                events.AddRange(outlookEvents);
            }
            catch (Exception ex)
            {
                throw ex;
            }

            return(events);
        }