c# - unit test with lambda fail using rhino mock -


if have test

expect.call(_session.single<admin>(x => x.email == usermodel.email)).repeat.once().return(null); 

telling me

rhino.mocks.exceptions.expectationviolationexception : isession.single(x => (x.email == value(enquete.test.controllers.membercontrollertest+<>c__displayclassb).usermodel.email)); expected #1, actual #0.

it fails if add .ignorearguments() works. possible test using lambda? if debug can see email same.

here's full test :

[test]         public void register_post_returnredirectonsuccess()         {             _builder.initializecontroller(_controller);              var usermodel = testhelper.createmembermodel();             var returnmemberrole = "member";             var temppassword = "val1dpass";             var member = testhelper.createmember(usermodel);             var emailsubscription = "subscription@corpiq.com";             var subjectnotification = "sujet du meessaaggee";             var mailusessl = "true";             var message = usermodel.firstname + " " + usermodel.lastname + " s'est inscrit au système d'enquête en ligne, veuillez confirmer son inscription.";             member.passwordexpire = datetime.now.adddays(-1);             member.phone = usermodel.phone;             member.membernumber = usermodel.membernumber;             member.passwordexpire = datetime.now.adddays(-1);              expect.call(_session.single<admin>(x => x.email == usermodel.email)).repeat.once().return(null);             expect.call(_session.single<member>(x => x.email == usermodel.email)).repeat.once().ignorearguments().return(null);             expect.call(_authservice.generatepassword()).repeat.once().return(temppassword);             expect.call(_authservice.memberrole).repeat.once().return(returnmemberrole);             expect.call(_authservice.registeruser(usermodel.email, temppassword, returnmemberrole)).repeat.once().return(membershipcreatestatus.success);             _session.add(member);             lastcall.repeat.once();             _session.commitchanges();             lastcall.repeat.once();             expect.call(_confighelper.getvalue("emailsubscription")).repeat.once().return(emailsubscription);             expect.call(_confighelper.getvalue("subjectnotification")).repeat.once().return(subjectnotification);             expect.call(_confighelper.getvalue("mailusessl")).repeat.once().return(mailusessl);             _mailhelper.sendmail(emailsubscription, subjectnotification, message, convert.toboolean(mailusessl));             lastcall.repeat.once();              _mock.replayall();             var result = _controller.register(usermodel);              _mock.verifyall();             result.assertactionredirect().toaction<membercontroller>(c => c.registersuccess());          } 

thank you!

the lambda in unit test compiles class-level method (a method inside unit test). inside controller, different lambda compiles class-level method (inside controller). 2 different methods used rhino mocks shows expectation error. more here: http://groups.google.com/group/rhinomocks/browse_frm/thread/a33b165c16fc48ee?tvc=1


Comments

Popular posts from this blog

Add email recipient to all new Trac tickets -

400 Bad Request on Apache/PHP AddHandler wrapper -

php - Change action and image src url's with jQuery -