import com.apigee.sdk.apm.android.JacksonMarshallingService;
import com.apigee.sdk.apm.android.model.ApigeeMonitoringSettings;
import com.apigee.sdk.apm.android.util.StringUtils;
import com.apigee.sdk.data.client.entities.User;
import com.apigee.sdk.data.client.response.ApiResponse;
import org.junit.BeforeClass;
import org.junit.Test;
import java.io.InputStream;
import java.util.UUID;
import static org.junit.Assert.*;
/**
* The ApigeeAuthTokenTest test case is used to validate the creation and validity of a token requests response. This comes into play when, for example, you login a user with the ApigeeDataClient.
*
* @author ApigeeCorporation
*/
public class ApigeeAuthTokenTest {
static String tokenSampleDataLocation = "token.json";
static ApiResponse apiResponse = null;
@BeforeClass
public static void setUpOnce() {
try {
InputStream inputStream = ApigeeMonitoringSettings.class.getClassLoader().getResourceAsStream(tokenSampleDataLocation);
assertNotNull("Sample data input stream is null.", inputStream);
String jsonString = StringUtils.inputStreamToString(inputStream);
assertNotNull("Sample data input stream to string method failed.",jsonString);
apiResponse = (ApiResponse)new JacksonMarshallingService().demarshall(jsonString, ApiResponse.class);
assertNotNull("Token ApiResponse object is null. Creation failed.",apiResponse);
} catch (Exception e) {
}
}
/**
* Tests the validity of the top level access_token and expires_in properties.
*/
@Test
public void test_AuthProperties() {
assertEquals("access_token is not equal.",apiResponse.getAccessToken(),"YWMt7J72Zg0fEeShX-l2bfgeBwAAAUdktenuCX-b_zZ_TvaOMAfcnBKgOFHJJ9U");
assertEquals("expires_in is not equal.",apiResponse.getProperties().get("expires_in").asLong(),604800L);
}
/**
* Tests the validity of the ApigeeUser created through the use of the sample data.
*/
@Test
public void test_UserProperties() {
User user = apiResponse.getUser();
assertNotNull("User from apiResponse is null.",user);
assertEquals("Created is " + user.getLongProperty("created") + " expected \"1403564520222\".",user.getLongProperty("created"),1403564520222L);
assertEquals("Modified is " + user.getLongProperty("modified") + " expected \"1403564520222\".", user.getLongProperty("modified"), 1403564520222L);
assertTrue("Activated is false and should be true.", user.isActivated());
assertFalse("Disabled is false and should be false.", user.isDisabled());
assertEquals("UUID is " + user.getUuid().toString() + "expected \"61fa03f4-fb2a-11e3-acca-39529b0acff6\".",user.getUuid(), UUID.fromString("61fa03f4-fb2a-11e3-acca-39529b0acff6"));
assertEquals("Type is " + user.getType() + "expected \"user\".",user.getType(),"user");
assertEquals("Name is " + user.getName() + "expected \"Test User\".",user.getName(),"Test User");
assertEquals("Email is " + user.getEmail() + "expected \"rwalsh@apigee.com\".",user.getEmail(),"rwalsh@apigee.com");
assertEquals("Username is " + user.getUsername() + "expected \"testuser\".",user.getUsername(),"testuser");
assertEquals("Picture is " + user.getPicture() + "expected \"http://www.gravatar.com/avatar/e466d447df831ddce35fbc50763fb03a\".",user.getPicture(),"http://www.gravatar.com/avatar/e466d447df831ddce35fbc50763fb03a");
}
}