RhinoMocks - передает функцию в качестве аргумента другой функции и утверждает, что функция, переданная в качестве аргумента, выполнена - PullRequest
0 голосов
/ 23 октября 2019

Я хочу выяснить, как отправить функцию в качестве аргумента другой функции и утверждать, что «функция, переданная в качестве аргумента» вызывается после некоторой проверки правильности.

Например,

public class DomainLogic 
{
    public virtual void SetPayload(ViewPayload payload, Func<CommandData, bool> filterApplier)
    {
        //some validation
        ..............
        filterApplier(); 
    }
}

[Test]
public void Test_SetPayload()
{
    DomainLogic domainLogic = m_MockRepository.DynamicMock<DomainLogic>();
    domainLogic.Expect(d => d.SetPayload(Arg<ViewPayload>.Is.NotNull, 
        Arg < Func <CommandData, bool>>.Is.NotNull))
        .WhenCalled(i => i.Arguments[1] = //pass own method);

      //Logic that calls SetPayload()
      MyView view = new MyView();
      view.SetDomainLogic(domainLogic);
      view.ChangeSelection(); // This internally calls the domainLogic's SetPayload()

     // Assert that own method is called. 
}

Есть ли способ, которым я могу это сделать? Я искал по всему интернету, все, что я получил, это как вызвать переданный метод, но не утверждать, вызван метод или нет.

Спасибо!

...