Я создаю модульное тестирование с использованием NLog и NSubstitute.
У меня в API Controller этот метод:
public GenericListItems<CalendarYearItem> GetYears(int startingYear = 0, int rangeYears = 50, int startIndex = 0, int itemCount = 4)
{
if (startingYear == 0)
{
startingYear = DateTime.Now.Year;
}
List<CalendarYearItem> years = Enumerable.Range(startingYear, rangeYears).Select(x => new CalendarYearItem(x++)).ToList();
if (years != null)
{
int firstIndex = 0;
int totalCount = years.Count;
years = PaginateList(years, startIndex, itemCount, totalCount, firstIndex);
return new GenericListItems<CalendarYearItem>(years, firstIndex, totalCount);
}
return new GenericListItems<CalendarYearItem>();
}
И этот интерфейс:
/// <summary>
/// Get Years
/// </summary>
/// <returns>List Months</returns>
GenericListItems<CalendarYearItem> GetYears(int startingYear, int rangeYears, int startIndex = 0, int itemCount = 4);
Мне нужен тест при вызове этого метода, если возвращено общее количество 50;
Если начальный год равен 0, подтвердите, если первая позиция 2018;
[Test]
[TestCase(0, 50)]
public void GetYears_GetCalendarListYearWithEmptyYear_ReturnCalendarListYearsStartingCurrentYear(int startingYear, int rangeYears)
{
GenericListItems<CalendarYearItem> calendar = new GenericListItems<CalendarYearItem>();
_substitute.GetYears(startingYear, rangeYears);
Assert.That(calendar.TotalCount, Is.EqualTo(50));
//var result = _substitute.GetFullDate(year, month, day).Returns(calendar);
//Assert.AreEqual(calendar, result);
}
Вместо Assert мне нужно использовать Collections Assert?
но когда создать аранжировку мне нужно скопировать мой запрос linq для создания?