Created
June 19, 2013 13:27
-
-
Save spg/5814325 to your computer and use it in GitHub Desktop.
StoriesResource and CurrentUserProvider
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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