wpf - Moq with c# System.Windows.MessageBoxButton.YesNoCancel -


i'm writing unit tests around wpf module of program. i've come point showmessage returns yes or no value within statement.

dservice.showmessage(view, args); 

the args takes lambda (shortened)

new messageargs(arg1, arg2, arg3, (la) =>  {    if (la.result == messresult.yes)    {    //    } } 

i'm trying mock result given lambda having difficulty , have been unable find similar problem.

i've tried setting default result within lambda in unit test:

new messageargs(arg1, arg2, arg3, (la) =>  {    if (la.result == messresult.yes)    {        la.result = messresult.yes;    } } 

which proved unsuccessful along trying set arg result below statement as:

args.result = messresult.yes; 

i have tried use setup as:

dservicemock.setup(x => x.showmessage) 

but there no return property showmessage void function.

none have shown change in action unit test. has else had similar "problem" , found solution or know of documentation around this? i'll update if find in mean time.

thank you.

if dservice not instance of sealed class, create subclass overrides showmessage method in way need test purposes.

edit:

the problem arises dservice.showmessage(view, args) call encapsulating 2 (or more) actions:
- calls view.showmessage
- calls lambda enclosed in args result of view.showmessage

now have create dservice.showmessage(view, args) such that:
- not show view
- assumes outcome of action instead
- calls lambda desired outcome


Comments

Popular posts from this blog

php - How to add and update images or image url in Volusion using Volusion API -

Laravel mail error `Swift_TransportException in StreamBuffer.php line 269: Connection could not be established with host smtp.gmail.com [ #0]` -

c# SetCompatibleTextRenderingDefault must be called before the first -