Тестовые вызовы приватных методов с moq
У меня есть следующий метод, который мне нужно проверить с помощью Moq. Проблема заключается в том, что каждый метод, вызываемый в операторе switch, является приватным, включая PublishMessage в конце. Но этот метод (ProcessMessage) является публичным. Как я могу проверить это, чтобы убедиться, что звонки выполняются в зависимости от параметра? Обратите внимание, что яЯ не проверяю частные методы, я просто хочу проверить "звонки», Я'Я хотел бы смоделировать эти частные методы и проверить, вызваны ли они с помощью программы установки, но Moq не поддерживает фиктивные частные методы.
public void ProcessMessage(DispenserMessageDataContract dispenserMessage)
{
var transOptions = new TransactionOptions { IsolationLevel = IsolationLevel.ReadCommitted };
using (var scope = new TransactionScope(TransactionScopeOption.RequiresNew, transOptions))
{
switch (dispenserMessage.Type)
{
case DispenserMessageType.AckNack:
UpdateAckNackMessageQueue(dispenserMessage);
break;
case DispenserMessageType.FillRequest:
CreateFillRequestMessageQueue(dispenserMessage);
break;
case DispenserMessageType.FillEvent:
UpdateFillEventMessageQueue(dispenserMessage);
break;
case DispenserMessageType.RequestInventory:
CreateRequestInventoryMessageQueue(dispenserMessage);
break;
case DispenserMessageType.ReceiveInventory:
CreateReceiveInventoryMessageQueue(dispenserMessage);
break;
}
scope.Complete();
}
PublishMessage(dispenserMessage);
}