Hi,

Have you written any tests for this? Im curious about the testing
abilities of a GWT app which uses GIN etc using EasyMock or Mockito or
something.
I've been told that it's very easy to test with Junit tests.. is this
the case? Do you have any examples?

Thanks in advance,
Frank B

On Oct 24, 12:56 pm, moejo <mahamad.el.tan...@gmail.com> wrote:
> Hi Amir,
>
> Yes, your absolutely right - forgot to call setFactory!  Now
> everything is working stunningly.  I've put together a sample bit of
> code using the Contact Details code I mentioned previously and it can
> be downloaded at:
>
> http://www.bright-creations.com/wp-content/uploads/2010/10/ContactsCl...
>
> If you guys have any comments about the code, please let me know.
> Thanks for all your advice, you guys have been seriously helpful.
>
> Cheers
>
> Moe
>
> On Oct 24, 10:16 am, Amir Kashani <amirkash...@gmail.com> wrote:
>
>
>
>
>
>
>
> > Moe,
>
> > Are you using PlaceHistoryMapperWithFactory? If so, my best guess is
> > that you're forgetting to call setFactory in your onModuleLoad():
>
> >   AppPlaceHistoryMapper historyMapper =
> > GWT.create(AppPlaceHistoryMapper.class);
> >   historyMapper.setFactory(ginjector.getAppPlaceFactory());
>
> > If that's not it, take a look at the generated code to see if you can
> > figure out what exactly is null on that line (-gen compiler option).
>
> > HTH.
>
> > - Amir
>
> > On Oct 23, 2:54 pm, moejo <mahamad.el.tan...@gmail.com> wrote:
>
> > > Hi All,
>
> > > I'm working on getting an example together and I am having issues
> > > setting up the injectors for the code you've suggested above (Amir,
> > > david, Aodhagán).  So far, I've setup everything as you've suggested
> > > for the AppActivityMapper, AppPlaceFactory, AppPlaceHistoryMapper,
> > > Places and ActivityPlace.  However, I am obviously missing something
> > > in the GIN module itself (apologize in advance, just started to use
> > > GIN).
>
> > > The pages are changing successfully, but no history token changes are
> > > made.
>
> > > The error i get is:
>
> > > Caused by: com.google.gwt.event.shared.UmbrellaException: One or more
> > > exceptions caught, see full set in UmbrellaException#getCauses
> > >     at
> > > com.google.gwt.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:
> > > 214)
>
> > > Caused by: java.lang.NullPointerException: null
> > >     at
> > > com.google.gwt.sample.contacts.client.mvp.AppPlaceHistoryMapperImpl.getPref
> > >  ixAndToken(AppPlaceHistoryMapperImpl.java:
> > > 24)
> > >     at
> > > com.google.gwt.place.impl.AbstractPlaceHistoryMapper.getToken(AbstractPlace
> > >  HistoryMapper.java:
> > > 66)
> > >     at
> > > com.google.gwt.place.shared.PlaceHistoryHandler.tokenForPlace(PlaceHistoryH
> > >  andler.java:
> > > 156)
> > >     at com.google.gwt.place.shared.PlaceHistoryHandler.access
> > > $1(PlaceHistoryHandler.java:151)
> > >     at com.google.gwt.place.shared.PlaceHistoryHandler
> > > $1.onPlaceChange(PlaceHistoryHandler.java:103)
> > >     at
> > > com.google.gwt.place.shared.PlaceChangeEvent.dispatch(PlaceChangeEvent.java
> > >  :
> > > 57)
> > >     at
> > > com.google.gwt.place.shared.PlaceChangeEvent.dispatch(PlaceChangeEvent.java
> > >  :
> > > 1)
> > >     at
> > > com.google.gwt.event.shared.SimpleEventBus.doFire(SimpleEventBus.java:
> > > 204)
> > >     at
> > > com.google.gwt.event.shared.SimpleEventBus.fireEvent(SimpleEventBus.java:
> > > 103)
> > >     at
> > > com.google.gwt.place.shared.PlaceController.goTo(PlaceController.java:
> > > 120)
> > >     at com.google.gwt.sample.contacts.client.activity.ContactActivity
> > > $1.onClick(ContactActivity.java:94)
>
> > > My NewContactPlace is as follows:
>
> > > public class NewContactPlace extends
> > > ActivityPlace<EditContactActivity> {
>
> > >     @Inject
> > >     public NewContactPlace(EditContactActivity activity) {
> > >         super(activity);
> > >         GWT.log("NewContactPlace.ActivityProvider: " + activity);
> > >     }
>
> > >     private String placeName;
>
> > >     public void setPlaceName(String token) {
> > >         this.placeName = token;
> > >     }
>
> > >     public String getPlaceName() {
> > >         return placeName;
> > >     }
>
> > >         @Prefix("new")
> > >         public static class Tokenizer implements
> > > PlaceTokenizer<NewContactPlace> {
>
> > >                 // Since the place is injectable, we'll let Gin do the 
> > > construction.
> > >                 private final Provider<NewContactPlace> placeProvider;
>
> > >                 @Inject
> > >         public Tokenizer(Provider<NewContactPlace> placeProvider) {
> > >             this.placeProvider = placeProvider;
> > >             GWT.log("NewContactPlace.Tokenizer.PlaceProvider: " +
> > > placeProvider);
> > >         }
>
> > >                 @Override
> > >                 public String getToken(NewContactPlace place) {
> > >                         return place.getPlaceName();
> > >                 }
>
> > >                 @Override
> > >                 public NewContactPlace getPlace(String token) {
> > >                         NewContactPlace place = placeProvider.get();
> > >                         place.setPlaceName(token);
> > >                         return place;
> > >             // If place requires any more work, do it here.
> > >                 }
>
> > >         }
>
> > > }
>
> > > However, (and I'm pretty sure here's the problem, is my GINModule:
>
> > > @Override
> > >         protected void configure() {
>
> > >                 // bind the EventBus
> > >                 
> > > bind(EventBus.class).to(SimpleEventBus.class).in(Singleton.class);
>
> > > bind(PlaceController.class).to(InjectablePlaceController.class).in(Singleto
> > >  n.class);
>
> > >                 // bind the mapper
>
> > > bind(ActivityMapper.class).to(AppActivityMapper.class).in(Singleton.class);
>
> > >                 // bind the views
> > >                 bind(IContactsViewDisplay.class).to(ContactsView.class);
> > >                 bind(IEditDisplay.class).to(EditContactView.class);
>
> > >         }
>
> > > I've not used providers before, so I'm guessing I need to define a
> > > provider?  or is there somewhere else I might be missing.
>
> > > Any help would be much appreciated.
>
> > > Cheers
>
> > > Moe
>
> > > On Oct 22, 11:58 pm, Thomas Broyer <t.bro...@gmail.com> wrote:
>
> > > > On 22 oct, 19:50, David Chandler <drfibona...@google.com> wrote:
>
> > > > > Hi Richard,
>
> > > > > We're still working on an official story for how best to use runAsync
> > > > > with Activities and Places. In the mean time, feedback on your
> > > > > experiences is welcome. GWT's AsyncProxy class or the AsyncProvider in
> > > > > GIN trunk look promising as ways to wrap Activity creation with a
> > > > > runAsync() call.
>
> > > > > If view creation is initiated only through the corresponding Activity,
> > > > > then wrapping Activity creation with runAsync() will defer loading of
> > > > > the view code also, and you'll be able to see this in the SOYC report.
>
> > > > > References:
> > > > >http://code.google.com/webtoolkit/doc/latest/DevGuideCodeSplitting.html
> > > > >http://code.google.com/webtoolkit/doc/latest/DevGuideCompileReport.html
>
> > > > Just so it doesn't get forgotten, see 
> > > > alsohttp://code.google.com/p/google-web-toolkit/issues/detail?id=5129
> > > > I implemented the proposed ActivityAsyncProxy (see comment #4, as a
> > > > concrete class, passing a GIN Provider<Activity> to the constructor)
> > > > as a proof-of-concept but haven't used it yet (to tell the truth, not
> > > > even tested it), so I cannot comment on how well/bad it works.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-tool...@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to