c# - In ServiceStack is it possible to mock the Request.OriginalRequest object for unit tests? -


i'd make servicestack service testable.

presently have:

[requireformsauthentication] public object delete(deleterequest request) {      var originalrequest = (httprequest)request.originalrequest;      var identity = originalrequest.requestcontext.httpcontext.user.identity;      return othercode(identity); } 

where requireformsauthentication is

public class requireformsauthenticationattribute : requestfilterattribute {     public override void execute(ihttprequest req, ihttpresponse res, object requestdto)     {         var originalrequest = (httprequest)req.originalrequest;         var identity = originalrequest.requestcontext.httpcontext.user.identity;         if (!identity.isauthenticated)         {             res.statuscode = (int)httpstatuscode.forbidden;             res.endservicestackrequest(skipheaders: true);         }     } } 

i've mocked out dependencies used 'othercode()' , that's left stuff that's in base class service. there pattern/strategy/approach/something i'm missing makes trivial?

i apologize not using moq...already had of done using rhinomocks. think concept should transfer moq. this might resource this.

anyway, think test code below should started. seam mocking request.originalrequest replaceing service.requestcontext mock object. have mock beyond that. it's going lot of 'mocking' , if repeat 'are mocking me' every time mock class it's enjoyable.

[test] public void testsomethign() {     var mockedrequestcontext = mockrepository.generatemock<irequestcontext>();     var mockedhttprequest = mockrepository.generatemock<ihttprequest>();     var mockedoriginalrequest = mockrepository.generatemock<httprequestbase>();     var mockedoriginalrequestcontext = mockrepository.generatemock<requestcontext>();      mockedoriginalrequest.stub(x => x.requestcontext).return(mockedoriginalrequestcontext);     mockedhttprequest.stub(x => x.originalrequest).return(mockedoriginalrequest);      mockedrequestcontext.stub(x => x.get<ihttprequest>()).return(mockedhttprequest);     var service = new servicetests()     {         requestcontext = mockedrequestcontext     };      service.delete(new deleterequest()); } 

Popular posts from this blog

How to calculate SNR of signals in MATLAB? -

c# - Attempting to upload to FTP: System.Net.WebException: System error -

ios - UISlider customization: how to properly add shadow to custom knob image -