On 5 oct, 16:18, Nala <[email protected]> wrote:
> I have started writing a few tests, and I have successfully confirmed
> that the events I expect to see fired are fired.  I`m using variations
> on
>
>   public void testEventFired() {
>     delayTestFinish(2000);
>     Foo myFoo = new Foo();
>     myFoo.addChangeHander(new ChangeHandler() {
>       public void onChange(ChangeEvent event) {
>         // assert that all the parts of the event are set correctly
>         finishTest();
>       }
>     });
>     myFoo.doThingThatTriggersChangeEvent();
>   }
>
> Now I'd like to test that myFoo.doThingThatDoesNotTriggerChangeEvent()
> doesn't fire a ChangeEvent.  I have to wait to give the event a chance
> to fire, but when the delay runs out, I want the test to be successful
> instead of fail.
>
> Is there any way to do that?

Yes, using a timer and a non-anonymous handler class; something like:

private class CountingChangeHandler implements ChangeHandler {
    public int callCount;

    public void onChange(ChangeEvent event) {
        callCount++;
    }
}
...
Foo myFoo = new Foo();
final CountingChangeHandler handler = new CountingChangeHandler();
delayTestFinish(3000);
(new Timer() {
    public void run() {
        // if handler.callCount isn't 0, it means it has been called!
        assertEquals(0, handler.callCount);
        finishTest();
    }
}).shedule(2500);
myFoo.doSomethingThatTriggersChangeEvent();

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" 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/google-web-toolkit?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to