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"))
}
}