Prism WPF: как вызвать обратный вызов для возврата IDialogResult.Result == Buttonresult.ok - PullRequest
1 голос
/ 07 ноября 2019

Я хочу использовать следующий интерфейс:

public interface IDialogService
{
   void ShowDialog(string name, IDialogParameters parameters, Action<IDialogResult> callback);
}

Я использую его со следующим кодом:

 protected bool AbortDeleteDialog()
    {
        bool abort= true; 
        DialogService.ShowDialog("Should xy be deleted?", [some parameters...],
            r => abort = r.Result != ButtonResult.OK);
        return abort;
    }

для целей тестирования Я хочу, чтобы r.Result иногда соответствовал ButtonResult. ОК, а иногда нет. Есть ли способ сделать это с MOQ?

1 Ответ

2 голосов
/ 07 ноября 2019

Вы можете использовать обратные вызовы :

var mock = new Mock<IDialogService>();

mock.Setup(x => x.ShowDialog(It.IsAny<string>(), It.IsAny<IDialogParameters>(), It.IsAny<Action<IDialogResult>>())
    .Callback((string name, IDialogParameters parameters, Action<IDialogResult> callback) =>
        callback(new DialogResult(ButtonResult.Ok)));

...

thing.AbortDeleteDialog();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...