Skip to content

Instantly share code, notes, and snippets.

@spg
Created June 19, 2013 13:27
Show Gist options
  • Save spg/5814325 to your computer and use it in GitHub Desktop.
Save spg/5814325 to your computer and use it in GitHub Desktop.
StoriesResource and CurrentUserProvider
package com.sceneverse.shozon.server.rest;
import javax.inject.Inject;
import javax.inject.Provider;
import org.jukito.JukitoModule;
import org.jukito.JukitoRunner;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.googlecode.objectify.Key;
import com.sceneverse.shozon.server.dao.StoryDao;
import com.sceneverse.shozon.server.testutil.DaoTestBase;
import com.sceneverse.shozon.shared.domain.Story;
import com.sceneverse.shozon.shared.domain.User;
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
@RunWith(JukitoRunner.class)
public class StoriesResourceTest extends DaoTestBase {
public static class MyModule extends JukitoModule {
@Override
protected void configureTest() {
bind(User.class).toProvider(TestUserProvider.class);
forceMock(TestUserProvider.class);
}
}
public static class TestUserProvider implements Provider<User> {
@Override
public User get() {
return null;
}
}
private static final long USER_ID = 3l;
@Inject
StoriesResource storiesResource;
@Inject
StoryDao storyDao;
@Test
public void myTest(TestUserProvider testUserProvider) {
//given
User mockUser = new User();
mockUser.setId(USER_ID);
when(testUserProvider.get()).thenReturn(mockUser);
//when
Long storyId = storiesResource.createStory();
//then
Story created = storyDao.get(storyId);
Key<User> userKey = created.getUserKey();
assertEquals(USER_ID, userKey.getId());
}
}
############### et tu dois changer le type de currentUserProvider dans StoriesResource:
import javax.inject.Provider;
@Path(EndPoints.STORY)
@Produces("application/json")
public class StoriesResource {
...
private final Provider<User> currentUserProvider;
@Inject
public StoriesResource(StoryDao storyDao,
Provider<User> currentUserProvider,
SubresourceFactory subresourceFactory) {
this.storyDao = storyDao;
this.currentUserProvider = currentUserProvider;
this.subresourceFactory = subresourceFactory;
}
...
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment