Device device = new Device(); PackageManager packageManager = context.getPackageManager(); packageInfo = packageManager.getPackageInfo(context.getPackageName(), 0); device.setAppVersion(packageInfo.versionName); device.setAppBuild(String.valueOf(getVersionCode(packageInfo))); } catch (Exception e) { AppCenterLog.error(AppCenter.LOG_TAG, "Cannot retrieve package info", e); device.setAppNamespace(context.getPackageName()); String networkCountryIso = telephonyManager.getNetworkCountryIso(); if (!TextUtils.isEmpty(networkCountryIso)) { device.setCarrierCountry(networkCountryIso); device.setCarrierName(networkOperatorName); device.setLocale(Locale.getDefault().toString()); device.setModel(Build.MODEL); device.setOemName(Build.MANUFACTURER); device.setOsApiLevel(Build.VERSION.SDK_INT); device.setOsName(OS_NAME); device.setOsVersion(Build.VERSION.RELEASE); device.setOsBuild(Build.ID); device.setScreenSize(getScreenSize(context)); } catch (Exception e) {
@Override public void read(JSONObject object) throws JSONException { super.read(object); setSdkName(object.getString(SDK_NAME)); setSdkVersion(object.getString(SDK_VERSION)); setModel(object.getString(MODEL)); setOemName(object.getString(OEM_NAME)); setOsName(object.getString(OS_NAME)); setOsVersion(object.getString(OS_VERSION)); setOsBuild(object.optString(OS_BUILD, null)); setOsApiLevel(JSONUtils.readInteger(object, OS_API_LEVEL)); setLocale(object.getString(LOCALE)); setTimeZoneOffset(object.getInt(TIME_ZONE_OFFSET)); setScreenSize(object.getString(SCREEN_SIZE)); setAppVersion(object.getString(APP_VERSION)); setCarrierName(object.optString(CARRIER_NAME, null)); setCarrierCountry(object.optString(CARRIER_COUNTRY, null)); setAppBuild(object.getString(APP_BUILD)); setAppNamespace(object.optString(APP_NAMESPACE, null)); }
@NonNull private Device getDevice(int appCenterTimeZoneOffset) { /* Create App Center models, starting with the device object. */ Device device = new Device(); device.setModel("model"); device.setOemName("oemName"); device.setLocale("en_US"); device.setOsName("osName"); device.setOsVersion("8.1.0"); device.setOsBuild("ABC.123"); device.setOsApiLevel(23); device.setAppVersion("1.0.0"); device.setAppNamespace("com.appcenter.test"); device.setCarrierName("carrierName"); device.setSdkName("appcenter.android"); device.setSdkVersion("1.5.0"); device.setTimeZoneOffset(appCenterTimeZoneOffset); return device; } }
@Test public void someBatch() throws JSONException { LogContainer expectedContainer = new LogContainer(); Device device = new Device(); device.setSdkName("appcenter.android"); device.setSdkVersion("1.2.3"); device.setModel("S5"); device.setOemName("HTC"); device.setOsName("Android"); device.setOsVersion("4.0.3"); device.setOsBuild("LMY47X"); device.setOsApiLevel(15); device.setLocale("en_US"); device.setTimeZoneOffset(120); device.setScreenSize("800x600"); device.setAppVersion("3.2.1"); device.setAppBuild("42"); List<Log> logs = new ArrayList<>();
Device d1 = new Device(); d1.setLocale("a"); Device d2 = new Device(); d2.setSdkVersion("a"); a.setDevice(d1); checkNotEquals(a, b);
@Override public void read(JSONObject object) throws JSONException { if (!object.getString(TYPE).equals(getType())) { throw new JSONException("Invalid type"); } setTimestamp(JSONDateUtils.toDate(object.getString(TIMESTAMP))); if (object.has(SID)) { setSid(UUID.fromString(object.getString(SID))); } setDistributionGroupId(object.optString(DISTRIBUTION_GROUP_ID, null)); setUserId(object.optString(USER_ID, null)); if (object.has(DEVICE)) { Device device = new Device(); device.read(object.getJSONObject(DEVICE)); setDevice(device); } }
@Test public void compareDifferentType() { compareSelfNullClass(new Device()); compareSelfNullClass(new WrapperSdk()); }
@NonNull private static Device generateMockDevice() { Device device = new Device(); device.setSdkName("appcenter.android"); device.setSdkVersion(String.format(Locale.ENGLISH, "%d.%d.%d", (RANDOM.nextInt(5) + 1), RANDOM.nextInt(10), RANDOM.nextInt(100))); device.setModel("S5"); device.setOemName("HTC"); device.setOsName("Android"); device.setOsVersion(String.format(Locale.ENGLISH, "%d.%d.%d", (RANDOM.nextInt(5) + 1), RANDOM.nextInt(10), RANDOM.nextInt(100))); device.setOsBuild("LMY47X"); device.setOsApiLevel(RANDOM.nextInt(9) + 15); device.setLocale("en_US"); device.setTimeZoneOffset(RANDOM.nextInt(52) * 30 - 720); device.setScreenSize(String.format(Locale.ENGLISH, "%dx%d", (RANDOM.nextInt(4) + 1) * 1000, (RANDOM.nextInt(10) + 1) * 100)); device.setAppVersion(String.format(Locale.ENGLISH, "%d.%d.%d", (RANDOM.nextInt(5) + 1), RANDOM.nextInt(10), RANDOM.nextInt(100))); device.setAppBuild(Integer.toString(RANDOM.nextInt(1000) + 1)); device.setAppNamespace("com.microsoft.unittest"); device.setWrapperSdkVersion("1.2.3.4"); device.setWrapperSdkName("ReactNative"); device.setLiveUpdateReleaseLabel("2.0.3-beta2"); device.setLiveUpdateDeploymentKey("staging"); device.setLiveUpdatePackageHash("aa896f791b26a7f464c0f62b0ba69f2b"); return device; } }
Device a = new Device(); Device b = new Device(); checkEquals(a, b); a.setWrapperSdkVersion("a"); checkNotEquals(a, b); b.setWrapperSdkVersion("b"); checkNotEquals(a, b); b.setWrapperSdkVersion("a"); checkEquals(a, b); a.setWrapperSdkName("a"); checkNotEquals(a, b); b.setWrapperSdkName("b"); checkNotEquals(a, b); b.setWrapperSdkName("a"); checkEquals(a, b); a.setWrapperRuntimeVersion("a"); checkNotEquals(a, b); b.setWrapperRuntimeVersion("b"); checkNotEquals(a, b); b.setWrapperRuntimeVersion("a"); checkEquals(a, b); a.setLiveUpdateReleaseLabel("a"); checkNotEquals(a, b); b.setLiveUpdateReleaseLabel("b"); checkNotEquals(a, b);