Ваша функция создает свой собственный фильтр:
var filter = new Filter {
Name = _view.Name,
Ids = _view.Ids?.Split(',').Select(x => x.Trim()).ToList(),
Countries = _view.Countries?.Split(',').Select(x => x.Trim()).ToList(),
Region = _view.Region,
};
Вы настраиваете тест с другим экземпляром фильтра:
Filter filter = new Filter { Ids = new List<string> { "123" } };
mockRepo.Verify(r => r.GetSearchItems(5000, filter), Times.Once);
Если вы хотите проверить вызов, передаваемый объект должен быть тем же объектом.
В противном случае настройте его для использования любого объекта Filter
для вызова:
mockRepo.Verify(r => r.GetSearchItems(5000, It.IsAny<Filter>()), Times.Once);
Или передать фильтр в качестве аргумента функции:
public void Filter(Filter filter)
{
_repository.GetSearchItems(5000, filter);
}