package bo.gotthardt.user; import bo.gotthardt.model.User; import bo.gotthardt.test.ApiIntegrationTest; import bo.gotthardt.test.DummyAuth; import io.dropwizard.testing.junit.ResourceTestRule; import org.junit.Before; import org.junit.ClassRule; import org.junit.Test; import static bo.gotthardt.test.assertj.DropwizardAssertions.assertThat; /** * Tests for {@link bo.gotthardt.user.UserResource}. * * @author Bo Gotthardt */ public class UserResourceTest extends ApiIntegrationTest { @ClassRule public static final ResourceTestRule resources = ResourceTestRule.builder() .addResource(new UserResource(db)) .addResource(new DummyAuth.Binder()) .setMapper(getMapper()) .build(); private User user; @Override public ResourceTestRule getResources() { return resources; } @Before public void setupUser() { user = new User("testname", "testpassword", "Testuser"); db.save(user); DummyAuth.setUser(user); } @Test public void shouldGetById() { assertThat(GET("/users/" + user.getId().toString())) .hasJsonContent(user); } @Test public void shouldGetCurrent() { assertThat(GET("/users/current")) .hasJsonContent(user); } @Test public void shouldChangePassword() { POST("/users/current/password", formParameters("currentPassword", "testpassword", "newPassword", "testpassword2")); db.refresh(user); assertThat(user.getPassword().equalsPlaintext("testpassword2")).isTrue(); } @Test public void shouldNotChangePasswordWhenCurrentPasswordIsWrong() { POST("/users/current/password", formParameters("currentPassword", "WRONGPASSWORD", "newPassword", "testpassword2")); db.refresh(user); assertThat(user.getPassword().equalsPlaintext("testpassword")).isTrue(); } }