superintelligence-android / android/app/src/test/java/net/kentonc/si/UpdateVersionTest.kt

raw file 1270 bytes
package net.kentonc.si

import org.junit.Assert.assertEquals
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Test

/** Sanity checks for the self-update version comparison (UpdateManager.kt). */
class UpdateVersionTest {
    @Test fun newerPatch() {
        assertTrue(UpdateManager.isVersionNewer("0.2.4", "0.2.3"))
        assertFalse(UpdateManager.isVersionNewer("0.2.3", "0.2.4"))
    }
    @Test fun equalIsNotNewer() {
        assertFalse(UpdateManager.isVersionNewer("0.2.3", "0.2.3"))
    }
    @Test fun missingSegmentsPadWithZero() {
        assertTrue(UpdateManager.isVersionNewer("0.3", "0.2.9"))
        assertFalse(UpdateManager.isVersionNewer("0.2", "0.2.3"))
    }
    @Test fun nonNumericHubVersionNeverNags() {
        // A hub version we can't parse must not nag.
        assertFalse(UpdateManager.isVersionNewer("latest", "0.2.3"))
    }
    @Test fun nonNumericLocalCanAlwaysUpdate() {
        // A non-numeric local build (e.g. a dev install) should see the update.
        assertTrue(UpdateManager.isVersionNewer("0.2.4", "dev"))
    }
    @Test fun majorAxes() {
        assertTrue(UpdateManager.isVersionNewer("1.0.0", "0.9.9"))
        assertTrue(UpdateManager.isVersionNewer("0.10.0", "0.9.0"))
    }
}