package eu.europeana.cloud.service.aas.rest; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; import static org.mockito.Mockito.when; import javax.ws.rs.client.Entity; import javax.ws.rs.core.Application; import javax.ws.rs.core.Response; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.test.JerseyTest; import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; import org.springframework.context.ApplicationContext; import eu.europeana.cloud.common.model.User; import eu.europeana.cloud.common.web.AASParamConstants; import eu.europeana.cloud.service.aas.authentication.AuthenticationService; import eu.europeana.cloud.service.aas.rest.exception.DatabaseConnectionExceptionMapper; import eu.europeana.cloud.service.aas.rest.exception.InvalidPasswordExceptionMapper; import eu.europeana.cloud.service.aas.rest.exception.InvalidUsernameExceptionMapper; import eu.europeana.cloud.service.aas.rest.exception.UserDoesNotExistExceptionMapper; import eu.europeana.cloud.service.aas.rest.exception.UserExistsExceptionMapper; public class AuthenticationResourceTest extends JerseyTest { private AuthenticationService authenticationService; private String username = "test"; private String password = "test2"; /** * Configuration of the Spring context */ @Override public Application configure() { return new ResourceConfig() .registerClasses(DatabaseConnectionExceptionMapper.class) .registerClasses(InvalidPasswordExceptionMapper.class) .registerClasses(InvalidUsernameExceptionMapper.class) .registerClasses(UserExistsExceptionMapper.class) .registerClasses(UserDoesNotExistExceptionMapper.class) .registerClasses(AuthenticationResource.class) .property("contextConfigLocation", "classpath:ecloud-aasservice-context-test.xml"); } @Before public void mockUp() { ApplicationContext applicationContext = ApplicationContextUtils.getApplicationContext(); authenticationService = applicationContext.getBean(AuthenticationService.class); Mockito.reset(authenticationService); } @Test public void testCreateCloudUser() throws Exception { User user = new User(username, password); when(authenticationService.getUser(username)).thenReturn(new User(username, password)); Response response = target("/create-user").queryParam(AASParamConstants.P_USER_NAME, username) .queryParam(AASParamConstants.P_USER_NAME, password) .request().post(Entity.json("")); assertThat(response.getStatus(), is(200)); } }