package io.lqd.sdk.model;
import android.location.Location;
import org.json.JSONObject;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
import org.robolectric.annotation.Config;
import io.lqd.sdk.factory.FactoryGirl;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertTrue;
@Config(manifest = "../AndroidManifest.xml")
@RunWith(RobolectricTestRunner.class)
public class LQDeviceTest {
private LQDevice device;
private JSONObject json;
@Before
public void before() {
device = FactoryGirl.createDevice(Robolectric.application);
json = device.toJSON();
}
@Test
public void testDeviceHaveVendor() {
assertTrue(json.has("vendor"));
}
@Test
public void testDeviceHavePlatform() {
assertTrue(json.has("platform"));
}
@Test
public void testDeviceHaveModel() {
assertTrue(json.has("model"));
}
@Test
public void testDeviceHaveSystemVersion() {
assertTrue(json.has("system_version"));
}
@Test
public void testDeviceHaveSystemLanguage() {
assertTrue(json.has("system_language"));
}
@Test
public void testDeviceHaveScreenSize() {
assertTrue(json.has("screen_size"));
}
@Test
public void testDeviceHaveCarrier() {
assertTrue(json.has("carrier"));
}
@Test
public void testDeviceHaveInternetConnectivity() {
assertTrue(json.has("internet_connectivity"));
}
@Test
public void testDeviceHaveUniqueID() {
assertTrue(json.has("unique_id"));
}
@Test
public void testDeviceHaveAppBundle() {
assertTrue(json.has("app_bundle"));
}
@Test
public void testDeviceHaveReleaseVersion() {
assertTrue(json.has("release_version"));
}
@Test
public void testDeviceHaveLiquidVersion() {
assertTrue(json.has("liquid_version"));
}
@Test
public void testDeviceDoesNotHaveLatitude() {
assertFalse(json.has("latitude"));
}
@Test
public void testDeviceDoesNotHaveLongitude() {
assertFalse(json.has("longitude"));
}
@Test
public void testDeviceDoesNotHavePushToken() {
assertFalse(json.has("push_token"));
}
@Test
public void testDeviceHaveCoordinates() {
Location l = new Location("le_test");
l.setLatitude(123);
l.setLongitude(31);
device.setLocation(l);
device.setPushId("le_id");
json = device.toJSON();
assertTrue(json.has("latitude"));
assertTrue(json.has("longitude"));
}
@Test
public void testDeviceHavePushToken() {
device.setPushId("le_id");
json = device.toJSON();
assertTrue(json.has("push_token"));
}
}