// Path: src/test/java/net/joelinn/asana/test/BaseTest.java
// public abstract class BaseTest {
//     protected String getApiKey(){
//         return "";  //enter your api key here to run the tests
//     }
// }
// 
// Path: src/main/java/net/joelinn/asana/users/User.java
// @JsonRootName("data")
// public class User {
//     public long id;
//     public String name;
//     public String email;
//     public Map<String, String> photo;
//     public List<Workspace> workspaces;
// }
// 
// Path: src/main/java/net/joelinn/asana/users/UsersClient.java
// public class UsersClient extends AbstractClient {
//     public UsersClient(String apiKey) {
//         super(apiKey);
//     }
// 
//     /**
//      * @param apiKey            your Asana API key
//      * @param connectionTimeout the connection timeout in MILLISECONDS
//      * @param readTimeout       the read timeout in MILLISECONDS
//      */
//     public UsersClient(String apiKey, int connectionTimeout, int readTimeout) {
//         super(apiKey, connectionTimeout, readTimeout);
//     }
// 
//     /**
//      * Retrieve a specific user
//      * @param userId the id of the user to be retrieved
//      * @return a User object
//      */
//     public User getUser(long userId){
//         return getUser(Long.toString(userId));
//     }
// 
//     /**
//      * Retrieve a specific user
//      * @param userId the id of the user to be retrieved
//      * @return a User object
//      */
//     public User getUser(String userId){
//         return get(String.format("users/%s", userId)).getEntity(User.class);
//     }
// 
//     /**
//      * Retrieve the user associated with the api key currently in use
//      * @return a User object
//      */
//     public User getMe(){
//         return getUser("me");
//     }
// 
//     /**
//      * Retrieve all users in all workspaces visible to the user associated with the api key currently in use
//      * @return a list of User objects
//      */
//     public Users getUsers(){
//         //return get("users").getEntity(new GenericType<List<User>>(){});
//         return get("users").getEntity(Users.class);
//     }
// }


import junit.framework.TestCase;
import net.joelinn.asana.test.BaseTest;
import net.joelinn.asana.users.User;
import net.joelinn.asana.users.UsersClient;
import org.junit.Before;
import org.junit.Test;
import java.util.List;
package net.joelinn.asana.test.users;



/**
 * Joe Linn
 * 11/16/13
 */
public class UsersClientTest extends BaseTest{
    protected UsersClient client;

    @Before
    public void setUp(){
        client = new UsersClient(getApiKey());
    }

    @Test
    public void testGet(){
        if(getApiKey().equals("")){
            // skip the test if no api key has been provided
            return;
        }
// Path: src/test/java/net/joelinn/asana/test/BaseTest.java
// public abstract class BaseTest {
//     protected String getApiKey(){
//         return "";  //enter your api key here to run the tests
//     }
// }
// 
// Path: src/main/java/net/joelinn/asana/users/User.java
// @JsonRootName("data")
// public class User {
//     public long id;
//     public String name;
//     public String email;
//     public Map<String, String> photo;
//     public List<Workspace> workspaces;
// }
// 
// Path: src/main/java/net/joelinn/asana/users/UsersClient.java
// public class UsersClient extends AbstractClient {
//     public UsersClient(String apiKey) {
//         super(apiKey);
//     }
// 
//     /**
//      * @param apiKey            your Asana API key
//      * @param connectionTimeout the connection timeout in MILLISECONDS
//      * @param readTimeout       the read timeout in MILLISECONDS
//      */
//     public UsersClient(String apiKey, int connectionTimeout, int readTimeout) {
//         super(apiKey, connectionTimeout, readTimeout);
//     }
// 
//     /**
//      * Retrieve a specific user
//      * @param userId the id of the user to be retrieved
//      * @return a User object
//      */
//     public User getUser(long userId){
//         return getUser(Long.toString(userId));
//     }
// 
//     /**
//      * Retrieve a specific user
//      * @param userId the id of the user to be retrieved
//      * @return a User object
//      */
//     public User getUser(String userId){
//         return get(String.format("users/%s", userId)).getEntity(User.class);
//     }
// 
//     /**
//      * Retrieve the user associated with the api key currently in use
//      * @return a User object
//      */
//     public User getMe(){
//         return getUser("me");
//     }
// 
//     /**
//      * Retrieve all users in all workspaces visible to the user associated with the api key currently in use
//      * @return a list of User objects
//      */
//     public Users getUsers(){
//         //return get("users").getEntity(new GenericType<List<User>>(){});
//         return get("users").getEntity(Users.class);
//     }
// }


// Path: src/test/java/net/joelinn/asana/test/users/UsersClientTest.java
import junit.framework.TestCase;
import net.joelinn.asana.test.BaseTest;
import net.joelinn.asana.users.User;
import net.joelinn.asana.users.UsersClient;
import org.junit.Before;
import org.junit.Test;
import java.util.List;

package net.joelinn.asana.test.users;



/**
 * Joe Linn
 * 11/16/13
 */
public class UsersClientTest extends BaseTest{
    protected UsersClient client;

    @Before
    public void setUp(){
        client = new UsersClient(getApiKey());
    }

    @Test
    public void testGet(){
        if(getApiKey().equals("")){
            // skip the test if no api key has been provided
            return;
        }
        User me = client.getMe();