package com.amazonaws.mobileconnectors.pinpoint.analytics;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.junit.Assert.assertNotNull;
import android.app.Activity;
import com.amazonaws.auth.AnonymousAWSCredentials;
import com.amazonaws.internal.StaticCredentialsProvider;
import com.amazonaws.mobileconnectors.pinpoint.PinpointCallback;
import com.amazonaws.mobileconnectors.pinpoint.PinpointConfiguration;
import com.amazonaws.mobileconnectors.pinpoint.PinpointManager;
import com.amazonaws.mobileconnectors.pinpoint.analytics.utils.ContextWithPermissions;
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 PinpointManagerTest {
public static final String uniqueAnalyticsTag1 = "dd0fe530-edca-11e3-ac10-0800200c9a66+TEST";
private PinpointManager analyticsClient;
private static StaticCredentialsProvider provider;
private PinpointConfiguration createConfig(String appId){
provider = new StaticCredentialsProvider(new AnonymousAWSCredentials());
return new PinpointConfiguration(new ContextWithPermissions(
new Activity().getApplicationContext()),
appId,
Regions.US_EAST_1,
provider);
}
/**
* Sets up the clients, and also tests the creation callback functionality.
*/
@Before
public void setup() {
PinpointConfiguration options = createConfig(uniqueAnalyticsTag1 + (new Random()).nextInt());
analyticsClient = new PinpointManager(options);
}
@Test
public void initAndTestConstructorCallback() {
PinpointConfiguration options = createConfig(uniqueAnalyticsTag1)
.withInitCompletionCallback(new PinpointCallback<PinpointManager>() {
@Override
public void onComplete(PinpointManager arg0) {
arg0.getAnalyticsClient()
.addGlobalAttribute("globalComplete", "GlobalComplete");
assertNotNull(arg0.getTargetingClient());
assertNotNull(arg0.getSessionClient());
}
});
analyticsClient = new PinpointManager(options);
assertTrue(analyticsClient.getAnalyticsClient().createEvent("testInitCallback")
.hasAttribute("globalComplete"));
}
@Test
public void initPinpointEnabledAndTestConstructorCallback() {
PinpointConfiguration options = createConfig(uniqueAnalyticsTag1)
.withEnablePinpoint(true)
.withInitCompletionCallback(new PinpointCallback<PinpointManager>() {
@Override
public void onComplete(PinpointManager arg0) {
arg0.getAnalyticsClient()
.addGlobalAttribute("globalComplete", "GlobalComplete");
assertNotNull(arg0.getTargetingClient());
assertNotNull(arg0.getSessionClient());
}
});
analyticsClient = new PinpointManager(options);
assertTrue(analyticsClient.getAnalyticsClient().createEvent("testInitCallback")
.hasAttribute("globalComplete"));
}
@Test
public void initAndTestNewConstructor() {
PinpointConfiguration config = createConfig(uniqueAnalyticsTag1);
analyticsClient = new PinpointManager(config);
assertNotNull(analyticsClient);
}
}