Les appels de Test pour les méthodes privées moq

J'ai la méthode suivante j'ai besoin de tester le Moq. Le problème est que chaque méthode appelée dans l'instruction switch est privé, y compris les PublishMessage à la fin. Mais cette méthode (ProcessMessage) est public. Comment puis-je tester ce que je puisse assurer les appels sont effectués en fonction du paramètre? Notez que je ne suis pas tester les méthodes privées, je veux juste tester les "appels". Je voudrais, à se moquer de ces méthodes privées et vérifier si elles sont appelées à l'aide de l'Installation, mais Moq ne supporte pas les moqueries des méthodes privées.

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);
    }

OriginalL'auteur Ray | 2014-01-08