У меня есть словарь, который я использую, чтобы не писать большие операторы if.Он отображает перечисление в действие.Это выглядит так:
var decisionMapper = new Dictionary<int, Action>
{
{
(int) ReviewStepType.StandardLetter,
() =>
caseDecisionService.ProcessSendStandardLetter(aCase)
},
{
(int) ReviewStepType.LetterWithComment,
() =>
caseDecisionService.ProcessSendStandardLetter(aCase)
},
{
(int) ReviewStepType.BespokeLetter,
() =>
caseDecisionService.ProcessSendBespokeLetter(aCase)
},
{
(int) ReviewStepType.AssignToCaseManager,
() =>
caseDecisionService.ProcessContinueAsCase(aCase)
},
};
, тогда я называю это так в моем методе:
decisionMapper[(int) reviewDecisionRequest.ReviewStepType]();
У меня вопрос как я могу протестировать эти сопоставления? (Я использую Nunit и c # 4.0)
Как я могу утверждать, что, когда я вызываю мой solutionMapper - это 1 равно вызову -caseDecisionService.ProcessSendStandardLetter (aCase).
Большое спасибо.