@Test public void upgradeMessageOnVersionCode() throws JSONException { AppRelease appRelease = AppReleaseManager.generateCurrentAppRelease(targetContext, null); String json = loadTextAssetAsString(TEST_DATA_DIR + "payloads/upgradeMessageOnVersionCode.json") .replace("\"APPLICATION_VERSION_CODE\"", String.valueOf(appRelease.getVersionCode())); InteractionCriteria criteria = new InteractionCriteria(json); VersionHistory versionHistory = new VersionHistory(); FieldManager fieldManager = new FieldManager(targetContext, versionHistory, new EventData(), new Person(), new Device(), appRelease); versionHistory.updateVersionHistory(Util.currentTimeSeconds(), versionCode, versionName); // Test version targeted UpgradeMessage // Saw this build too long ago. ApptentiveLog.e("ONE"); versionHistory.clear(); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 1000000, 1, "1.0"); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 600000, versionCode, "2.0.0"); ApptentiveLog.e("Current time: %f", Util.currentTimeSeconds()); assertFalse(criteria.isMet(fieldManager)); // Haven't upgraded ApptentiveLog.e("TWO"); versionHistory.clear(); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 499500, versionCode, "2.0.0"); assertFalse(criteria.isMet(fieldManager)); // Just right ApptentiveLog.e("THREE"); versionHistory.clear(); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 1000000, 1, "1.0"); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 499500, versionCode, "2.0.0"); assertTrue(criteria.isMet(fieldManager)); }
@Test public void upgradeMessageOnVersionName() throws JSONException { AppRelease appRelease = AppReleaseManager.generateCurrentAppRelease(targetContext, null); String json = loadTextAssetAsString(TEST_DATA_DIR + "payloads/upgradeMessageOnVersionName.json") .replace("APPLICATION_VERSION_NAME", appRelease.getVersionName()); InteractionCriteria criteria = new InteractionCriteria(json); VersionHistory versionHistory = new VersionHistory(); EventData eventData = new EventData(); FieldManager fieldManager = new FieldManager(targetContext, versionHistory, eventData, new Person(), new Device(), appRelease); versionHistory.updateVersionHistory(Util.currentTimeSeconds(), versionCode, versionName); eventData.storeEventForCurrentAppVersion(Util.currentTimeSeconds(), versionCode, versionName, "app.launch"); // Test version targeted UpgradeMessage // Saw this build too long ago. ApptentiveLog.e("ONE"); versionHistory.clear(); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 1000000, 3, "1.0"); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 600000, 4, "2.0.0"); assertFalse(criteria.isMet(fieldManager)); // Haven't upgraded ApptentiveLog.e("TWO"); versionHistory.clear(); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 499500, 4, "2.0.0"); assertFalse(criteria.isMet(fieldManager)); // Just right ApptentiveLog.e("THREE"); versionHistory.clear(); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 1000000, 3, "1.0"); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 499500, 4, "2.0.0"); assertTrue(criteria.isMet(fieldManager)); }
versionHistory.clear(); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 5, 4, "2.0"); assertFalse(criteria.isMet(fieldManager)); versionHistory.clear(); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 3, 4, "2.0"); assertTrue(criteria.isMet(fieldManager)); versionHistory.clear(); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 1, 4, "2.0"); assertFalse(criteria.isMet(fieldManager)); versionHistory.clear(); eventData.storeEventForCurrentAppVersion(Util.currentTimeSeconds(), versionCode, versionName, "switch"); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 5, 4, "2.0"); versionHistory.clear(); eventData.storeEventForCurrentAppVersion(Util.currentTimeSeconds(), versionCode, versionName, "switch"); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 5, 3, "1.1"); versionHistory.clear(); eventData.storeEventForCurrentAppVersion(Util.currentTimeSeconds(), versionCode, versionName, "switch"); versionHistory.updateVersionHistory(Util.currentTimeSeconds() - 3, 3, "1.1"); versionHistory.clear(); eventData.storeEventForCurrentAppVersion(Util.currentTimeSeconds(), versionCode, versionName, "switch"); eventData.storeEventForCurrentAppVersion(Util.currentTimeSeconds(), versionCode, versionName, "switch"); versionHistory.clear();