Ok, I've made a little progress. The problem is that the ControllerContext is null in the AbstractFormRelatedHelper. What I've done is stub the Context.CurrentControllerContext and create an empty propertybag within that. The formhelper is now a happy bunny.
On Apr 8, 11:07 am, "[email protected]" <[email protected]> wrote: > Hi Ken, > > In answer to your questions. > > a. I'm new-ing the helper as I need an instance of it within the > ViewComponent. I see that the CaptchaComponent from the Castle Contrib > project does the same > thing.http://svn.castleproject.org:8080/svn/castlecontrib/viewcomponents/tr.... > Am I doing this completely wrong? > > b. I don't have a propertybag at all in the test environment as I'm > currently try to test a "New" action. Likewise in my Controller I > don't have a PropertyBag value for the New action. The strange thing > is that the ViewComponent works fine when not in the test environment. > > To try and make it a bit clearer what I'm trying to do please look at > the viewcomponent > > http://membranecms.googlecode.com/svn/trunk/Membrane/ViewComponents/A... > > and it's test > > http://membranecms.googlecode.com/svn/trunk/Membrane.Tests/Unit/Web/M... > > Please be gentle as this is the first time I've tried to TDD a > ViewComponent :-) > > Thanks > > John > > On Apr 8, 10:41 am, Ken Egozi <[email protected]> wrote: > > > a. why are you new-ing the helper? they are all being created anyway by the > > framework. > > b. it appear that the failing call is ObtainRootInstance, with the target Id > > you supply to the TextField method. > > is there something in the PropertyBag that corresponds to fieldId in the > > test environment? > > > On Wed, Apr 8, 2009 at 12:36 PM, [email protected] < > > > [email protected]> wrote: > > > > I'm currently working on a ViewComponent however I'm struggling the > > > testing side of things. > > > > The ViewComponent uses the FormHelper within it. > > > > formHelper = new FormHelper(EngineContext); > > > > and is creating a series of TextFields dynamically > > > > formHelper.TextField(fieldId) > > > > This works fine when running the view. However when running the test > > > which inherits from BaseViewComponentTest I'm getting the following > > > error message when the formHelper.TextField(fieldId) code is run. > > > > System.NullReferenceException: Object reference not set to an instance > > > of an object. > > > at > > > > Castle.MonoRail.Framework.Helpers.AbstractFormRelatedHelper.ObtainRootInstance > > > (RequestContext context, String target) > > > at > > > > Castle.MonoRail.Framework.Helpers.AbstractFormRelatedHelper.ObtainRootInstance > > > (RequestContext context, String target, String[]& pieces) > > > at > > > Castle.MonoRail.Framework.Helpers.AbstractFormRelatedHelper.ObtainValue > > > (RequestContext context, String target) > > > at > > > Castle.MonoRail.Framework.Helpers.AbstractFormRelatedHelper.ObtainValue > > > (String target) > > > at > > > Castle.MonoRail.Framework.Helpers.AbstractFormRelatedHelper.ObtainValue > > > (String target, IDictionary attributes) > > > at Castle.MonoRail.Framework.Helpers.FormHelper.TextField(String > > > target, IDictionary attributes) > > > at Castle.MonoRail.Framework.Helpers.FormHelper.TextField(String > > > target) > > > > Is there something I'm missing? I've seen this discussion about the > > > lack of PropertyBaghttp://markmail.org/message/xremym6hthsudx4obut > > > as I said the same code works fine when running the viewcomponent in > > > the view. > > > > Hope this makes sense > > > > John > > > -- > > Ken > > Egozi.http://www.kenegozi.com/bloghttp://www.delver.comhttp://www.musicglue... > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Castle Project Users" 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/castle-project-users?hl=en -~----------~----~----~----~------~----~------~--~---
