package test; import javax.ws.rs.client.Client; import javax.ws.rs.client.ClientBuilder; import javax.ws.rs.client.WebTarget; import javax.ws.rs.core.Response; import junit.framework.TestCase; import org.glassfish.jersey.client.ClientConfig; import org.glassfish.jersey.client.authentication.HttpAuthenticationFeature; import br.com.livro.rest.GsonMessageBodyHandler; public class UserInfoTest extends TestCase { String URL = "http://localhost:8080/Carros/rest/userInfo"; // Faz login com "livro/livro123" public void testUserInfoLoginLivro() { // Cria o cliente da API ClientConfig clientConfig = new ClientConfig(); Client client = ClientBuilder.newClient(clientConfig); client.register(HttpAuthenticationFeature.basic("livro", "livro123")); client.register(GsonMessageBodyHandler.class); WebTarget target = client.target(URL); String s = target.request().get(String.class); assertEquals("Você é um usuário: livro", s); } // Faz login com "admin/admin123" public void testUserInfoLoginAdmin() { // Cria o cliente da API ClientConfig clientConfig = new ClientConfig(); Client client = ClientBuilder.newClient(clientConfig); client.register(HttpAuthenticationFeature.basic("admin", "admin123")); client.register(GsonMessageBodyHandler.class); WebTarget target = client.target(URL); String s = target.request().get(String.class); assertEquals("Você é um administrador: admin", s); } // Faz login com usuário que não existe. public void testUserInfoAcessoNegado() { // Cria o cliente da API ClientConfig clientConfig = new ClientConfig(); Client client = ClientBuilder.newClient(clientConfig); client.register(HttpAuthenticationFeature.basic("xxx", "yyy")); client.register(GsonMessageBodyHandler.class); WebTarget target = client.target(URL); Response response = target.request().get(); // Acesso não autorizado assertEquals(401, response.getStatus()); } }