public void Call_NotMoreThen3CallsPerSecond()
{
Json = @"{ ""response"": 2 }";
Api.RequestsPerSecond = 3; // Переопределение значения в базовом классе
var invocationCount = 0;
Mock.Get(Api.Browser)
.Setup(m => m.GetJson(It.IsAny<string>()))
.Returns(Json)
.Callback(delegate { invocationCount++; });
var start = DateTimeOffset.Now;
while (true)
{
Api.Call("someMethod", VkParameters.Empty, true);
var total = (int)(DateTimeOffset.Now - start).TotalMilliseconds;
if (total > 999)
{
break;
}
}
// Не больше 4 раз, т.к. 4-ый раз вызывается через 1002 мс после первого вызова, а total выходит через 1040 мс
// переписать тест, когда придумаю более подходящий метод проверки
Mock.Get(Api.Browser).Verify(m => m.GetJson(It.IsAny<string>()), Times.AtMost(4));
}