public void TestGetHolidays() { var holidayTable = GetHolidayTable(); for (var year = StatDate.Year; year <= EndDate.Year; year++) { var start = new DateTime(year, 1, 1); var end = new DateTime(year, 12, DateTime.DaysInMonth(year, 12)); var holidays = JpHoliday.GetHolidays(start, end); foreach (var date in holidayTable.Keys.Where((d) => d.Year == year)) { var holiday = holidays.FirstOrDefault((h) => h.Date == date); Assert.IsNotNull( holiday, @"[{0}]は休日ではないと判定されましたがテストデータには[{1}]として含まれています", date.ToString(@"yyyy/MM/dd"), holidayTable[date]); Assert.AreEqual( holidayTable[date], holiday.Name, true, @"[{0}]は[{1}]と判定されましたがテストデータの[{2}]と一致しません", date.ToString(@"yyyy/MM/dd"), holiday.Name, holidayTable[date]); } } }
public void TestGetHoliday() { var holidayTable = GetHolidayTable(); for (var date = StatDate; date <= EndDate; date = date.AddDays(1)) { var holiday = JpHoliday.GetHoliday(date); if (holiday != null && !holidayTable.ContainsKey(date)) { Assert.Fail( @"[{0}]は[{1}]と判定されましたがテストデータに含まれていません", date.ToString(@"yyyy/MM/dd"), holiday.Name); } else if (holiday == null && holidayTable.ContainsKey(date)) { Assert.Fail( @"[{0}]は休日ではないと判定されましたがテストデータには[{1}]として含まれています", date.ToString(@"yyyy/MM/dd"), holidayTable[date]); } if (holiday != null) { Assert.AreEqual( holidayTable[date], holiday.Name, true, @"[{0}]は[{1}]と判定されましたがテストデータの[{2}]と一致しません", date.ToString(@"yyyy/MM/dd"), holiday.Name, holidayTable[date]); } } }
public void TestIsHoliday() { var holidayTable = GetHolidayTable(); for (var date = StatDate; date <= EndDate; date = date.AddDays(1)) { var expected = holidayTable.ContainsKey(date); var actual = JpHoliday.IsHoliday(date); Assert.AreEqual( expected, actual, @"[{0}]は[{1}]と判定されましたがテストデータの[{2}]と一致しません", date.ToString(@"yyyy/MM/dd"), (actual ? @"休日" : @"休日ではない"), (expected ? @"休日" : @"休日ではない")); } }
public void TestExistsHoliday() { var holidayTable = GetHolidayTable(); var startDate = new DateTime(StatDate.Year, StatDate.Month, 1); var endDate = new DateTime(EndDate.Year, EndDate.Month, 1); for (var date = startDate; date <= endDate; date = date.AddMonths(1)) { var start = new DateTime(date.Year, date.Month, 1); var end = new DateTime(date.Year, date.Month, DateTime.DaysInMonth(date.Year, date.Month)); var expected = holidayTable.Keys.Any((d) => d.Year == date.Year && d.Month == date.Month); var actual = JpHoliday.ExistsHoliday(start, end); Assert.AreEqual( expected, actual, @"[{0}]は[{1}]と判定されましたがテストデータの[{2}]と一致しません", date.ToString(@"yyyy/MM"), (actual ? @"休日あり" : @"休日なし"), (expected ? @"休日あり" : @"休日なし")); } }