package com.amazonaws.mobileconnectors.amazonmobileanalytics; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertNotNull; import android.app.Activity; import android.content.Context; import android.content.ContextWrapper; import android.content.pm.PackageManager; import com.amazonaws.auth.AnonymousAWSCredentials; import com.amazonaws.internal.StaticCredentialsProvider; import com.amazonaws.regions.Regions; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.robolectric.RobolectricTestRunner; import org.robolectric.annotation.Config; import java.util.Random; @RunWith(RobolectricTestRunner.class) @Config(manifest = Config.NONE) public class MobileAnalyticsManagerTest { public static final String uniqueAnalyticsTag1 = "dd0fe530-edca-11e3-ac10-0800200c9a66+TEST"; private MobileAnalyticsManager analyticsClient; private static StaticCredentialsProvider provider; private class ContextWithPermissions extends ContextWrapper { public ContextWithPermissions(Context base) { super(base); } @Override public int checkCallingOrSelfPermission(String permission) { if (permission.equalsIgnoreCase("android.permission.INTERNET") || permission.equalsIgnoreCase("android.permission.ACCESS_NETWORK_STATE")) return PackageManager.PERMISSION_GRANTED; else return super.checkCallingOrSelfPermission(permission); } } /** * Sets up the clients, and also tests the creation callback functionality. */ @Before public void setup() { provider = new StaticCredentialsProvider(new AnonymousAWSCredentials()); AnalyticsConfig options = new AnalyticsConfig(); options.withAllowsWANDelivery(true); analyticsClient = MobileAnalyticsManager.getOrCreateInstance(new ContextWithPermissions( new Activity().getApplicationContext()), uniqueAnalyticsTag1 + (new Random()).nextInt(), Regions.US_EAST_1, provider, options); } @Test public void initAndTestConstructorCallback() { AnalyticsConfig options = new AnalyticsConfig(); options.withAllowsWANDelivery(true); analyticsClient = MobileAnalyticsManager.getOrCreateInstance(new ContextWithPermissions( new Activity().getApplicationContext()), uniqueAnalyticsTag1, Regions.US_EAST_1, provider, options, new AnalyticsCallback<MobileAnalyticsManager>() { @Override public void onComplete(MobileAnalyticsManager arg0) { arg0.getEventClient() .addGlobalAttribute("globalComplete", "GlobalComplete"); } }); assertTrue(analyticsClient.getEventClient().createEvent("testInitCallback") .hasAttribute("globalComplete")); } @Test public void initAndTestNewConstructor() { analyticsClient = MobileAnalyticsManager.getOrCreateInstance(new ContextWithPermissions( new Activity().getApplicationContext()), uniqueAnalyticsTag1 + (new Random()).nextInt(), "COGNITOID"); assertNotNull(analyticsClient); } }