Hi Justin ,

Can I use Unity from Codplex ?

Thanks & Regards,
Chirag



On Mon, Nov 17, 2008 at 7:54 PM, Justin Chase <[EMAIL PROTECTED]> wrote:

>
> FYI, a quick list of IOC Containers:
>
> http://csharp-source.net/open-source/containers
>
>
> On Nov 17, 8:21 am, "Justin Chase" <[EMAIL PROTECTED]> wrote:
> > I don't know if you can effectively mock the HttpContext. It's sealed and
> > has no interfaces... it's one massive side effect. I would recommend
> > abstracting your use of it out to a custom class that wraps it and helps
> you
> > break direct dependencies on it.
> >
> > One way I would recommend to do this is by using an IOC container and
> > abstracting out the http context. So suppose all you want is the current
> > User off of the HttpContext. Instead of directly referencing the context
> > make an interface and class like this:
> > public interface IHttpContext
> > {
> >   IPrincipal User { get; }
> >
> > }
> >
> > public class HttpContextWrapper : IHttpContext
> > {
> >   HttpContext _context;
> >   public HttpContextWrapper(HttpContext context)
> >   {
> >     _context = context;
> >   }
> >
> >   public IPrincipal User { get { return _context.User; } }
> >
> > }
> >
> > Now in your code that used to call the context to get the user do
> something
> > like this:
> >
> > IHttpContext context = Container.Create<IHttpContext>();
> > IPrincipal user = context.User;
> >
> > Now to register it in your real code, at app initialization:
> >
> > Container.Register<IHttpContext>(() => return new
> > HttpContextWrapper(HttpContext.Current));
> >
> > and using Rhino Mocks in your unit test library instead register it this
> > way:
> >
> > IHttpContext context = MockRepository.GenerateMock<IHttpContext>();
> > Container.Register<IHttpContext>(() => return context);
> >
> > The exact syntax for the container is just psuedo code above, it depends
> on
> > the framework you're using but the concepts are generally the same. You
> use
> > the container as a factory method to break dependencies between types. In
> > the real app you register the real types in the test app you register
> mock
> > types.
> >
> > On Mon, Nov 17, 2008 at 1:40 AM, chiragkumar maisuriya <
> >
> >
> >
>  > [EMAIL PROTECTED]> wrote:
> >
> > >  Hi Ayende,
> >
> > >> I am working on Rhino Mocks and trying to mock out the HttpContext for
> one
> > >> of my Controller's Method using rhino Mocks but Finding a lot of
> troubles
> >
> > >> I am sending the my Method  and Test Method. Please Suggest me some
> way so
> > >> that I can mock out HttpContext Object for Unit Test my method.
> >
> > >> public override bool Execute(string moduleId, string actionId,
> > >> HttpContext context)
> >
> > >> {
> >
> > >> switch (actionId)
> >
> > >> {
> >
> > >> case "Init":
> >
> > >> LoadData();
> >
> > >> break;
> >
> > >> default:
> >
> > >> break;
> >
> > >> }
> >
> > >> dealerBulletinDetailsEntity.ActionId = actionId;
> >
> > >> SetContext(dealerBulletinDetailsEntity, context);
> >
> > >> SetContext(rulesEntity, context);
> >
> > >> return RedirectUrl(moduleId, context);
> >
> > >> }
> >
> > >> Test Method
> >
> > >> [
> > >> TestMethod()]
> >
> > >> public void ExecuteTest()
> >
> > >> {
> >
> > >>  PolicyRulesController target = new PolicyRulesController(); // TODO:
> > >> Initialize to an appropriate value
> >
> > >> string moduleId = string.Empty; // TODO: Initialize to an appropriate
> > >> value
> >
> > >> string actionId = string.Empty; // TODO: Initialize to an appropriate
> > >> value
> >
> > >> HttpContextBase context =
> MockRepository.GenerateStub<HttpContextBase>();
> >
> > >> bool expected = false; // TODO: Initialize to an appropriate value
> >
> > >> bool actual;
> >
> > >> actual = target.Execute(moduleId, actionId, context);
> >
> > >> Assert.AreEqual(expected, actual);
> >
> > >> Assert.Inconclusive("Verify the correctness of this test method.");
> >
> > >> }
> >
> > >> Thanks & Regards,
> >
> > >> Chirag
> >
> > --
> > Justin Chasehttp://www.justnbusiness.com
>  >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Rhino.Mocks" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/RhinoMocks?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to