예제 #1
0
        public DirectoryProvider(ILocalizedNames localizedNames)
        {
            if (localizedNames == null)
            {
                throw new ArgumentNullException("Localized names cannot be null");
            }

            _localizedNames = localizedNames;
        }
예제 #2
0
        public AttendanceListDocumentGenerator(IAttendanceListData data, ILocalizedNames names)
        {
            if (data == null || names == null)
            {
                throw new ArgumentNullException();
            }

            _data  = data;
            _names = names;
        }
예제 #3
0
        public void GetApplicationDirectoryPath_CorrectILocalizedNames_ReturnsCorrectPath()
        {
            string            applicationDirectoryName = "Attendance List Generator";
            ILocalizedNames   localizedNames           = Mock.Of <ILocalizedNames>(l => l.ApplicationDirectoryName == applicationDirectoryName);
            DirectoryProvider directoryProvider        = new DirectoryProvider(localizedNames);

            string applicationDirectoryPath = directoryProvider.GetApplicationDirectoryPath();

            string myDocumentsPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
            string expectedResult  = myDocumentsPath + "\\Attendance List Generator";

            Assert.That(applicationDirectoryPath, Is.EqualTo(expectedResult));
        }
        public FilenameGenerator(ILocalizedNames names, IDateTimeProvider dateTimeProvider)
        {
            if (names == null)
            {
                throw new ArgumentNullException("ILocalizedNames cannot be null");
            }

            if (dateTimeProvider == null)
            {
                throw new ArgumentNullException("IDateTimeProvider cannot be null");
            }

            _names            = names;
            _dateTimeProvider = dateTimeProvider;
        }
        public void GeneratePdfDocumentFilename_GivenData_ReturnsCorrectFileName(Month month, int year, DateTime dateTime, string expectedResult)
        {
            ILocalizedNames localizedNames = Mock.Of <ILocalizedNames>(l => l.GetMonthName(Month.January) == "January" &&
                                                                       l.GetMonthName(Month.February) == "February" &&
                                                                       l.GetMonthName(Month.March) == "March" &&
                                                                       l.GetMonthName(Month.April) == "April" &&
                                                                       l.GetMonthName(Month.May) == "May" &&
                                                                       l.GetMonthName(Month.June) == "June" &&
                                                                       l.GetMonthName(Month.July) == "July" &&
                                                                       l.GetMonthName(Month.September) == "September" &&
                                                                       l.GetMonthName(Month.October) == "October" &&
                                                                       l.GetMonthName(Month.November) == "November" &&
                                                                       l.GetMonthName(Month.December) == "December");
            IAttendanceListData attendanceListData = Mock.Of <IAttendanceListData>(a => a.Month == month && a.Year == year);
            IDateTimeProvider   dateTimeProvider   = Mock.Of <IDateTimeProvider>(d => d.Now == dateTime);
            FilenameGenerator   fileNameGenerator  = new FilenameGenerator(localizedNames, dateTimeProvider);

            string fileName = fileNameGenerator.GeneratePdfDocumentFilename(attendanceListData);

            Assert.That(fileName, Is.EqualTo(expectedResult));
        }
        private AttendanceListDocumentGenerator GetAttendanceListDocumentGenerator()
        {
            IList<IPerson> people = new List<IPerson>
            {
                Mock.Of<IPerson>(p => p.FirstName == "James" && p.LastName == "Hunt"),
                Mock.Of<IPerson>(p => p.FirstName == "William" && p.LastName == "Jefferson"),
                Mock.Of<IPerson>(p => p.FirstName == "Ryan" && p.LastName == "Carroll")
            };

            IList<IDay> days = new List<IDay>
            {
                Mock.Of<IDay>(d => d.DayOfMonth == 1 && d.FormattedDayOfMonth == "1." && d.DayOfWeek == DayOfWeek.Tuesday && d.Holiday == Holiday.NewYearsDay),
                Mock.Of<IDay>(d => d.DayOfMonth == 2 && d.FormattedDayOfMonth == "2." && d.DayOfWeek == DayOfWeek.Wednesday),
                Mock.Of<IDay>(d => d.DayOfMonth == 3 && d.FormattedDayOfMonth == "3." && d.DayOfWeek == DayOfWeek.Thursday),
                Mock.Of<IDay>(d => d.DayOfMonth == 4 && d.FormattedDayOfMonth == "4." && d.DayOfWeek == DayOfWeek.Friday),
                Mock.Of<IDay>(d => d.DayOfMonth == 5 && d.FormattedDayOfMonth == "5." && d.DayOfWeek == DayOfWeek.Saturday),
                Mock.Of<IDay>(d => d.DayOfMonth == 6 && d.FormattedDayOfMonth == "6." && d.DayOfWeek == DayOfWeek.Sunday && d.Holiday == Holiday.Epiphany),
                Mock.Of<IDay>(d => d.DayOfMonth == 7 && d.FormattedDayOfMonth == "7." && d.DayOfWeek == DayOfWeek.Monday),
                Mock.Of<IDay>(d => d.DayOfMonth == 8 && d.FormattedDayOfMonth == "8." && d.DayOfWeek == DayOfWeek.Tuesday),
                Mock.Of<IDay>(d => d.DayOfMonth == 9 && d.FormattedDayOfMonth == "9." && d.DayOfWeek == DayOfWeek.Wednesday),
                Mock.Of<IDay>(d => d.DayOfMonth == 10 && d.FormattedDayOfMonth == "10." && d.DayOfWeek == DayOfWeek.Thursday),
                Mock.Of<IDay>(d => d.DayOfMonth == 11 && d.FormattedDayOfMonth == "11." && d.DayOfWeek == DayOfWeek.Friday),
                Mock.Of<IDay>(d => d.DayOfMonth == 12 && d.FormattedDayOfMonth == "12." && d.DayOfWeek == DayOfWeek.Saturday),
                Mock.Of<IDay>(d => d.DayOfMonth == 13 && d.FormattedDayOfMonth == "13." && d.DayOfWeek == DayOfWeek.Sunday),
                Mock.Of<IDay>(d => d.DayOfMonth == 14 && d.FormattedDayOfMonth == "14." && d.DayOfWeek == DayOfWeek.Monday),
                Mock.Of<IDay>(d => d.DayOfMonth == 15 && d.FormattedDayOfMonth == "15." && d.DayOfWeek == DayOfWeek.Tuesday),
                Mock.Of<IDay>(d => d.DayOfMonth == 16 && d.FormattedDayOfMonth == "16." && d.DayOfWeek == DayOfWeek.Wednesday),
                Mock.Of<IDay>(d => d.DayOfMonth == 17 && d.FormattedDayOfMonth == "17." && d.DayOfWeek == DayOfWeek.Thursday),
                Mock.Of<IDay>(d => d.DayOfMonth == 18 && d.FormattedDayOfMonth == "18." && d.DayOfWeek == DayOfWeek.Friday),
                Mock.Of<IDay>(d => d.DayOfMonth == 19 && d.FormattedDayOfMonth == "19." && d.DayOfWeek == DayOfWeek.Saturday),
                Mock.Of<IDay>(d => d.DayOfMonth == 20 && d.FormattedDayOfMonth == "20." && d.DayOfWeek == DayOfWeek.Sunday),
                Mock.Of<IDay>(d => d.DayOfMonth == 21 && d.FormattedDayOfMonth == "21." && d.DayOfWeek == DayOfWeek.Monday),
                Mock.Of<IDay>(d => d.DayOfMonth == 22 && d.FormattedDayOfMonth == "22." && d.DayOfWeek == DayOfWeek.Tuesday),
                Mock.Of<IDay>(d => d.DayOfMonth == 23 && d.FormattedDayOfMonth == "23." && d.DayOfWeek == DayOfWeek.Wednesday),
                Mock.Of<IDay>(d => d.DayOfMonth == 24 && d.FormattedDayOfMonth == "24." && d.DayOfWeek == DayOfWeek.Thursday),
                Mock.Of<IDay>(d => d.DayOfMonth == 25 && d.FormattedDayOfMonth == "25." && d.DayOfWeek == DayOfWeek.Friday),
                Mock.Of<IDay>(d => d.DayOfMonth == 26 && d.FormattedDayOfMonth == "26." && d.DayOfWeek == DayOfWeek.Saturday),
                Mock.Of<IDay>(d => d.DayOfMonth == 27 && d.FormattedDayOfMonth == "27." && d.DayOfWeek == DayOfWeek.Sunday),
                Mock.Of<IDay>(d => d.DayOfMonth == 28 && d.FormattedDayOfMonth == "28." && d.DayOfWeek == DayOfWeek.Monday),
                Mock.Of<IDay>(d => d.DayOfMonth == 29 && d.FormattedDayOfMonth == "29." && d.DayOfWeek == DayOfWeek.Tuesday),
                Mock.Of<IDay>(d => d.DayOfMonth == 30 && d.FormattedDayOfMonth == "30." && d.DayOfWeek == DayOfWeek.Wednesday),
                Mock.Of<IDay>(d => d.DayOfMonth == 31 && d.FormattedDayOfMonth == "31." && d.DayOfWeek == DayOfWeek.Thursday),
            };

            IAttendanceListData stubAttendanceListData = Mock.Of<IAttendanceListData>
                                                       (a =>
                                                        a.People == people &&
                                                        a.Days == days &&
                                                        a.Month == Month.January &&
                                                        a.Year == 2019 &&
                                                        a.MaxNumberOfFullnames == 7);

            ILocalizedNames names = Mock.Of<ILocalizedNames>
                                   (n =>
                                    n.GetDocumentTitle(Month.January, 2019) == "January 2019" &&
                                    n.GetDayOfWeekAbbreviation(DayOfWeek.Monday) == "Mon." &&
                                    n.GetDayOfWeekAbbreviation(DayOfWeek.Tuesday) == "Tue." &&
                                    n.GetDayOfWeekAbbreviation(DayOfWeek.Wednesday) == "Wed." &&
                                    n.GetDayOfWeekAbbreviation(DayOfWeek.Thursday) == "Thu." &&
                                    n.GetDayOfWeekAbbreviation(DayOfWeek.Friday) == "Fri." &&
                                    n.GetDayOfWeekAbbreviation(DayOfWeek.Saturday) == "Sat." &&
                                    n.GetDayOfWeekAbbreviation(DayOfWeek.Sunday) == "Sun." &&
                                    n.GetDayOfWeekName(DayOfWeek.Sunday) == "Sunday" &&
                                    n.GetHolidayName(Holiday.NewYearsDay) == "New Years Day" &&
                                    n.GetHolidayName(Holiday.Epiphany) == "Epiphany");

            return new AttendanceListDocumentGenerator(stubAttendanceListData, names);
        }