Я бы хотел протестировать этот контроллер:
[HttpGet]
public IList<Notification> GetNotificationsByCustomerAndId([FromUri] string[] name, [FromUri] int[] lastNotificationID)
{
return _storage.GetNotifications(name, lastNotificationID, _topX);
}
В частности, в этом методе я хочу проверить, что массив, переданный во вводе для формирования запроса Url, представляет собой тот же массив, который входит в routeData.Values
. Если для однозначных параметров (не массивов) он работает, но не работает для массивов. Если я отлаживаю Values
, я вижу только controller
и action
.
[TestMethod]
public void GetNotificationsByCustomerAndId_ArrayOverload_Should_Match_InputParameter_name()
{
string[] _testName = new string[] { _testCustomer, _testCustomerBis };
string Url = string.Format(
"http://www.testpincopallo.it/Notifications/GetByCustomerAndLastID/customersNotificationsInfos?name={0}&name={1}&lastNotificationID={2}&lastNotificationID={3}",
_testName[0], _testName[1],
_testNotificationID, _testNotificationIDBis);
IHttpRouteData routeData = GetRouteData(Url);
routeData.Values["name"].Should().Be(_testName);
}
Есть ли другой способ unit test, когда вы передаете массивы?