public AttendanceListDocumentGenerator(IAttendanceListData data, ILocalizedNames names) { if (data == null || names == null) { throw new ArgumentNullException(); } _data = data; _names = names; }
public string GeneratePdfDocumentFilename(IAttendanceListData data) { if (data == null) { throw new ArgumentNullException("IAttendanceListData cannot be null"); } string fileExtension = ".pdf"; // Get month localized name and year converted to string string documentsMonth = _names.GetMonthName(data.Month); string documentsYear = data.Year.ToString(); // Get current DateTime DateTime now = _dateTimeProvider.Now; // Get current date time converted to string string currentYear = now.Year.ToString(); string currentMonth = GetStringWithZeroAtTheBegnning(now.Month); string currentDay = GetStringWithZeroAtTheBegnning(now.Day); string currentHour = GetStringWithZeroAtTheBegnning(now.Hour); string currentMinute = GetStringWithZeroAtTheBegnning(now.Minute); string currentSecond = GetStringWithZeroAtTheBegnning(now.Second); // Build a result string StringBuilder stringBuilder = new StringBuilder(); stringBuilder.Append(documentsMonth); stringBuilder.Append("_"); stringBuilder.Append(documentsYear); stringBuilder.Append("_"); stringBuilder.Append(currentDay); stringBuilder.Append(currentMonth); stringBuilder.Append(currentYear); stringBuilder.Append(currentHour); stringBuilder.Append(currentMinute); stringBuilder.Append(currentSecond); stringBuilder.Append(fileExtension); return(stringBuilder.ToString()); }
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); }