package com.uservoice; import static org.junit.Assert.*; import java.io.IOException; import net.sf.json.JSONObject; import org.junit.Test; public class ClientTest extends com.uservoice.Test { protected Client getTrustedClient() { return new Client(config("subdomain_name"), config("api_key"), config("api_secret"), null, null, null, config("uservoice_domain"), config("uservoice_protocol")); } protected Client getUnauthorizedClient() { return new Client(config("subdomain_name"), config("api_key"), null, null, null, null, config("uservoice_domain"), config("uservoice_protocol")); } @Test public void shouldGet10Users() throws APIError { Client client = getTrustedClient(); JSONObject result = client.get("/api/v1/users"); assertEquals(10, result.getJSONArray("users").size()); } @Test public void shouldGetSuggestionsAsUnauthorized() throws APIError { Client client = getUnauthorizedClient(); JSONObject result = client.get("/api/v1/suggestions"); assertEquals(10, result.getJSONArray("suggestions").size()); } @Test public void shouldLoginAsOwner() throws APIError { Client client = getTrustedClient(); JSONObject result = client.loginAsOwner().get("/api/v1/users/current"); assertEquals(true, result.getJSONObject("user").getJSONObject("roles").getBoolean("owner")); } @Test public void shouldLoginAsRegularUser() throws APIError, IOException { Client client = getTrustedClient(); JSONObject result = client.loginAs("man.with.only.answers@example.com").get("/api/v1/users/current"); assertEquals(false, result.getJSONObject("user").getJSONObject("roles").getBoolean("owner")); } @Test public void shouldGet102Users() { assertEquals(102, getTrustedClient().getCollection("/api/v1/users", 102).size()); } }