sounds like both of these are internal tests - not something that is
valid for user-land. like i said, factor out those things that replace
the providers into an overridable method - and in those tests override
it to do nothing...

-igor

On Sun, Jun 5, 2011 at 9:23 AM, Martin Grigorov <[email protected]> wrote:
> On Sun, Jun 5, 2011 at 7:14 PM, Igor Vaynberg <[email protected]> wrote:
>> On Sun, Jun 5, 2011 at 9:01 AM, Martin Grigorov <[email protected]> wrote:
>>> Currently MockApplication overrides #internalInit() (why not #init()
>>> ?!) and setups almost similar inmemory/mock impls like the ones
>>> BaseWicketTester overrides later.
>>
>> it does, but it is a very common scenario when components under test
>> need to access something in application or session which is why we
>> tell the users to use their own application class with tester.
>>
>>> I find it confusing that in my app I have to use #init() {
>>> setXYZProvider(...)} but in tests this provider is overridden silently
>>> by something else.
>>
>> which provider is causing you grief specifically? these things are
>> mostly wicket internals and transparent to the application. if you
>> wanted to test them i doubt you would do it through the wickettester
>> itself.
>
> The first one was ISessionStore - I needed to use HttpSessionStore
> (the default one) for WicketSessionFilterTest.
> I had to rework BaseWicketTester to be able to actually setup
> HttpSessionStore. See commit #1131149.
>
> Today I needed to setup custom IPageManager and again I needed to
> debug why it is ignored/overridden.
> Looking at BaseWicketTester I see no other providers that override
> silently. I just need to touch the one for IPageManager.
>
>>
>>> Using boolean flag for all providers doesn't seem OK to me. Maybe we
>>> can provide BaseWicketTester#newXYZProvider() for all which can be
>>> overridden and if this method returns 'null' then don't override. This
>>> way the user can allow one inmemory impl but ignore another.
>>
>> either way works, as long as the default is not changed - eg tests run
>> with in-memory store and run fast.
>>
> I agree with 'fast'. I just didn't like that it is not possible to run
> with any other impl.
>
>> -igor
>>
>>>
>>> On Sun, Jun 5, 2011 at 6:46 PM, Igor Vaynberg <[email protected]> 
>>> wrote:
>>>> i think the memory/mock things should be there by default because they
>>>> make the tests run faster. if you want to control it make it a boolean
>>>> on the tester itself. putting this kind of logic into application
>>>> class seems a little dirty.
>>>>
>>>> -igor
>>>>
>>>> On Sun, Jun 5, 2011 at 7:36 AM, Martin Grigorov <[email protected]> 
>>>> wrote:
>>>>> Hi,
>>>>>
>>>>> I had some troubles recently to setup custom ISessionStore and
>>>>> IPageManager for some tests.
>>>>> The problem is that BaseWicketTester overrides anything already setup
>>>>> in MyApp#init() with the inmemory/mock impls.
>>>>> I suggest to move all these inmemory/mock impls in
>>>>> MockApplication#init() and all tests that use "new WicketTester()"
>>>>> will use those. All user's tests will have to override UserApp#init()
>>>>> for the tests if they prefer any inmemory/mock impl, otherwise they
>>>>> will use the default impl provided by Wicket (depends on DEPLOYMENT or
>>>>> DEVELOPMENT mode). This way they will be more close to the real
>>>>> environment and can setup inmemory impl *only* if they decide so.
>>>>>
>>>>> The only exception are IPageRendererProvider and IRequestCycleProvider
>>>>> which has to be special for WicketTester.
>>>>>
>>>>> WDYT ?
>>>>>
>>>>> --
>>>>> Martin Grigorov
>>>>> jWeekend
>>>>> Training, Consulting, Development
>>>>> http://jWeekend.com
>>>>>
>>>>
>>>
>>>
>>>
>>> --
>>> Martin Grigorov
>>> jWeekend
>>> Training, Consulting, Development
>>> http://jWeekend.com
>>>
>>
>
>
>
> --
> Martin Grigorov
> jWeekend
> Training, Consulting, Development
> http://jWeekend.com
>

Reply via email to