private bool VerifyKeepAliveTestResults(Subscription subscription)
{
if (subscription.Failed)
{
return false;
}
if (subscription.MissingSequenceNumbers.Count > 0)
{
Log(
"Missing messages for subscription. SubscriptionId = {0}, Last = {1}, Missing = {2}",
subscription.SubscriptionId,
subscription.LastReceivedSequenceNumber,
new Variant(subscription.MissingSequenceNumbers));
return false;
}
if (subscription.NextExpectedSequenceNumber != subscription.LastReceivedSequenceNumber+1)
{
Log(
"Missing messages for subscription. SubscriptionId = {0}, Actual = {1}, Expected = {2}",
subscription.SubscriptionId,
subscription.LastReceivedSequenceNumber,
subscription.NextExpectedSequenceNumber);
return false;
}
if (subscription.NotificationMessages.Count > 0)
{
Log(
"Received unexpected notification messages for subscription {0}. Count = {1}",
subscription.SubscriptionId,
subscription.NotificationMessages.Count);
return false;
}
bool success = true;
for (int ii = 0; ii < subscription.States.Count; ii++)
{
if (!VerifyKeepAliveTestResults(subscription, subscription.States[ii], ii == 0))
{
success = false;
}
}
return success;
}