@Test public void testWrite() throws IOException { File jsonFile = new File(mTempFolder.getRoot(), ".kiji-bento-upgrade"); LOG.info("Creating an UpgradeResponse and writing it."); UpgradeResponse.fromJSON(TEST_JSON).write(jsonFile); LOG.info("Reading back that file into an UpgradeResponse and verifying."); verifyUpgradeResponse(UpgradeResponse.fromFile(jsonFile)); }
@Test public void testIsCompatibleNewer() { UpgradeResponse response = UpgradeResponse.fromJSON(TEST_JSON); LOG.info("Testing isCompatibleNewer"); assertTrue(response.isCompatibleNewer("1.0.0")); assertFalse(response.isCompatibleNewer("1.1.0")); assertFalse(response.isCompatibleNewer("3.0.0")); assertTrue(response.isCompatibleNewer("1.1.0-rc1")); }
@Test public void testIsTimeToRemind() { LOG.info("Creating an upgrade response that's due for a reminder."); UpgradeResponse response = UpgradeResponse.fromJSON(TEST_JSON); assertTrue("It should be time to remind.", response.isTimeToRemind(1000L)); LOG.info("Now we shouldn't be due for one."); response.justReminded(); assertFalse("It shouldn't be time to remind.", response.isTimeToRemind(10000L)); }
@Test public void testParseNonRCVersionString() { UpgradeResponse response = UpgradeResponse.fromJSON(TEST_JSON); LOG.info("Trying to parse a non-rc version string: 1.2.3"); int[] components = response.parseVersionString("1.2.3"); LOG.info("Parsed non-rc version, verifying components."); assertTrue("Wrong number of components in parsed version string.", 3 == components.length); assertEquals("Wrong first component.", 1, components[0]); assertEquals("Wrong second component.", 2, components[1]); assertEquals("Wrong third component.", 3, components[2]); }
@Test public void testJustReminded() { LOG.info("Creating an UpgradeResponse to remind the user about."); UpgradeResponse response = UpgradeResponse.fromJSON(TEST_JSON); assertEquals("Last reminder time incorrect.", 0L, response.getLastReminderTimeMillis()); long currentTime = System.currentTimeMillis(); LOG.info("Resetting last reminder time and verifying."); response.justReminded(); assertTrue( "Last reminder time not updated correctly.", response.getLastReminderTimeMillis() >= currentTime); }
@Test public void testFromJson() { LOG.info("Creating upgrade response from test JSON: " + TEST_JSON); UpgradeResponse response = UpgradeResponse.fromJSON(TEST_JSON); LOG.info("Verifying fields of created response."); verifyUpgradeResponse(response); }
@Test public void testFromFile() throws IOException { LOG.info("Writing a file with upgrade response JSON."); File jsonFile = new File(mTempFolder.getRoot(), ".kiji-bento-upgrade"); BentoBoxUtils.writeObjectToFile(jsonFile, TEST_JSON); LOG.info("Getting and verifying an UpgradeResponse from that file content."); UpgradeResponse response = UpgradeResponse.fromFile(jsonFile); verifyUpgradeResponse(response); }
@Test public void testIsRelevant() { LOG.info("Testing isRelevant using response with latest_version > compatible_version"); UpgradeResponse response = UpgradeResponse.fromJSON(TEST_JSON); assertFalse("Irrelevant upgrade info is relevant.", response.isRelevant("3.0.0")); assertTrue("Relevant upgrade info is irrelevant.", response.isRelevant("1.0.0")); assertTrue("Relevant upgrade info is irrelevant.", response.isRelevant("1.2.0")); LOG.info("Testing isRelevant using response with latest_version == compatible_version"); response = UpgradeResponse.fromJSON(TEST_JSON_EQUAL_VERSIONS); assertTrue("Relevant upgrade is irrelevant.", response.isRelevant("1.0.0")); assertFalse("Irrelevant upgrade is relevant.", response.isRelevant("3.0.0")); }
private void verifyUpgradeResponse(UpgradeResponse response) { assertEquals("Response format incorrect.", RESPONSE_FORMAT, response.getResponseFormat()); assertEquals("Latest version incorrect.", LATEST_VERSION, response.getLatestVersion()); assertEquals( "Latest version URL incorrect.", LATEST_VERSION_URL, response.getLatestVersionURL().toString()); assertEquals( "Compatible version incorrect.", COMPATIBLE_VERSION, response.getCompatibleVersion()); assertEquals( "Compatible version URL incorrect.", COMPATIBLE_VERSION_URL, response.getCompatibleVersionURL().toString()); assertEquals("Upgrade message incorrect.", UPGRADE_MESSAGE, response.getMessage()); assertEquals("Last reminder time incorrect.", 0L, response.getLastReminderTimeMillis()); }
@Test public void testUpgradeReminder() { LOG.info("Testing getting an upgrade reminder when there is no compatible version."); UpgradeResponse response = UpgradeResponse.fromJSON(TEST_JSON_NO_COMPATIBLE_VERSION); String reminder = response.getUpgradeReminder("1.0.0"); assertTrue( "Bad upgrade reminder for incompatible upgrade.", reminder.contains("(incompatible with your version")); assertFalse( "Bad upgrade reminder for incompatible upgrade.", reminder.contains("(compatible with your version")); reminder = response.getUpgradeReminder("3.0.0"); assertEquals("Got upgrade reminder for irrelevant upgrade.", "", reminder); LOG.info("Testing getting an upgrade reminder when compatible and latest version are equal"); response = UpgradeResponse.fromJSON(TEST_JSON_EQUAL_VERSIONS); reminder = response.getUpgradeReminder("1.0.0"); assertTrue( "Bad upgrade reminder for compatible upgrade.", reminder.contains("(compatible with your version")); assertFalse( "Bad upgrade reminder for compatible upgrade.", reminder.contains("(incompatible with your version")); reminder = response.getUpgradeReminder("3.0.0"); assertEquals("Got upgrade reminder for irrelevant upgrade.", "", reminder); LOG.info( "Testing getting an upgrade reminder when latest version greater than compatible " + "version."); response = UpgradeResponse.fromJSON(TEST_JSON); reminder = response.getUpgradeReminder("1.0.0"); // Should contain info about both a compatible and incompatible upgrade. assertTrue( "Bad upgrade reminder for incompatible+compatible upgrade.", reminder.contains("(incompatible with your version")); assertTrue( "Bad upgrade reminder for incompatible+compatible upgrade.", reminder.contains("(compatible with your version")); reminder = response.getUpgradeReminder("1.1.0"); // Should contain info only about an incompatible upgrade. assertTrue( "Bad upgrade reminder for incompatible upgrade.", reminder.contains("(incompatible with your version")); assertFalse( "Bad upgrade reminder for incompatible upgrade.", reminder.contains("(compatible with your version")); reminder = response.getUpgradeReminder("3.0.0"); assertEquals("Got upgrade reminder for irrelevant upgrade.", "", reminder); }
@Test public void testIsVersionNewer() { LOG.info("Testing isVersionNewer comparing two non-rc versions."); UpgradeResponse response = UpgradeResponse.fromJSON(TEST_JSON); assertTrue(response.isVersionNewer("1.2.3", "1.2.2")); assertTrue(response.isVersionNewer("1.2.3", "1.1.3")); assertTrue(response.isVersionNewer("1.2.3", "0.2.3")); assertFalse(response.isVersionNewer("1.2.3", "1.2.3")); assertFalse(response.isVersionNewer("1.2.2", "1.2.3")); assertFalse(response.isVersionNewer("1.1.3", "1.2.3")); assertFalse(response.isVersionNewer("0.2.3", "1.2.3")); LOG.info( "Testing isVersionNewer comparing one rc and one non-rc version, when non-rc " + "portions of versions are unequal."); assertTrue(response.isVersionNewer("1.2.3", "1.2.2-rc1")); assertTrue(response.isVersionNewer("1.2.3", "1.1.3-rc1")); assertTrue(response.isVersionNewer("1.2.3", "0.2.3-rc1")); assertFalse(response.isVersionNewer("1.2.2-rc1", "1.2.3")); assertFalse(response.isVersionNewer("1.1.3-rc1", "1.2.3")); assertFalse(response.isVersionNewer("0.2.3-rc1", "1.2.3")); LOG.info( "Testing isVersionNewer comparing one rc and one non-rc version, " + "when non-rc portions are equal."); assertTrue(response.isVersionNewer("1.2.3", "1.2.3-rc1")); assertFalse(response.isVersionNewer("1.2.3-rc1", "1.2.3")); LOG.info("Testing isVersionNewer with two rc versions, with unequal non-rc components."); assertTrue(response.isVersionNewer("1.2.3-rc2", "1.2.2-rc1")); assertTrue(response.isVersionNewer("1.2.3-rc2", "1.1.3-rc1")); assertTrue(response.isVersionNewer("1.2.3-rc2", "0.2.3-rc1")); assertFalse(response.isVersionNewer("1.2.2-rc1", "1.2.3-rc2")); assertFalse(response.isVersionNewer("1.1.3-rc1", "1.2.3-rc2")); assertFalse(response.isVersionNewer("0.2.3-rc1", "1.2.3-rc2")); LOG.info("Testing isVersionNewer with two rc versions, with equal non-rc components."); assertFalse(response.isVersionNewer("1.2.3-rc1", "1.2.3-rc2")); assertTrue(response.isVersionNewer("1.2.3-rc2", "1.2.3-rc1")); assertFalse(response.isVersionNewer("1.2.3-rc1", "1.2.3-rc1")); }