Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 252ad378 authored by Jonathan Klee's avatar Jonathan Klee
Browse files

chore: add small unit tests to test Jacoco reports

parent d9cabe2a
Loading
Loading
Loading
Loading
+67 −0
Original line number Diff line number Diff line
package foundation.e.apps.data

import foundation.e.apps.data.enums.ResultStatus
import java.util.concurrent.TimeoutException
import org.junit.Assert.assertEquals
import org.junit.Assert.assertSame
import org.junit.Assert.assertTrue
import org.junit.Test

class ResultSupremeTest {

    @Test
    fun successHoldsDataAndStatus() {
        val result = ResultSupreme.Success("value")

        assertTrue(result.isSuccess())
        assertEquals("value", result.data)
        assertEquals(ResultStatus.OK, result.getResultStatus())
        assertEquals("", result.message)
    }

    @Test
    fun timeoutPreservesDataAndException() {
        val exception = TimeoutException("late")
        val result = ResultSupreme.Timeout(listOf(1, 2, 3), exception)

        assertTrue(result.isTimeout())
        assertEquals(listOf(1, 2, 3), result.data)
        assertSame(exception, result.exception)
        assertEquals(ResultStatus.TIMEOUT, result.getResultStatus())
    }

    @Test
    fun createBuildsUnknownErrorWithDataAndMessage() {
        val exception = IllegalStateException("fail")
        val result = ResultSupreme.create(
            status = ResultStatus.UNKNOWN,
            data = "raw",
            message = "bad",
            exception = exception
        )

        assertTrue(result.isUnknownError())
        assertEquals("raw", result.data)
        assertEquals("bad", result.message)
        assertSame(exception, result.exception)
    }

    @Test
    fun replicateCarriesStatusAndOverridesData() {
        val base = ResultSupreme.Timeout(listOf("stale"))
        base.message = "original"
        base.exception = IllegalStateException("timeout")

        val copy = ResultSupreme.replicate(
            result = base,
            newData = "fresh",
            message = "override",
            exception = base.exception
        )

        assertTrue(copy.isTimeout())
        assertEquals("fresh", copy.data)
        assertEquals("override", copy.message)
        assertSame(base.exception, copy.exception)
    }
}
+63 −0
Original line number Diff line number Diff line
package foundation.e.apps.data.fdroid.models

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

class FdroidModelsTest {

    @Test
    fun buildInfoDefaultConstructorSetsEmptyValues() {
        val buildInfo = BuildInfo()

        assertEquals("", buildInfo.versionCode)
        assertEquals("", buildInfo.versionName)
    }

    @Test
    fun buildInfoConstructorUsesFallbacksForNulls() {
        val buildInfo = BuildInfo(null, null)

        assertEquals("", buildInfo.versionCode)
        assertEquals("", buildInfo.versionName)
    }

    @Test
    fun buildInfoConstructorAssignsProvidedValues() {
        val buildInfo = BuildInfo("123", "1.2.3")

        assertEquals("123", buildInfo.versionCode)
        assertEquals("1.2.3", buildInfo.versionName)
    }

    @Test
    fun fdroidApiModelDefaultsToEmptyValues() {
        val apiModel = FdroidApiModel()

        assertEquals("", apiModel.authorName)
        assertTrue(apiModel.builds.isEmpty())
    }

    @Test
    fun fdroidApiModelConstructorSetsProperties() {
        val build = BuildInfo("10", "1.0.0")
        val apiModel = FdroidApiModel("Author", listOf(build))

        assertEquals("Author", apiModel.authorName)
        assertEquals(listOf(build), apiModel.builds)
    }

    @Test
    fun fdroidEntityFallsBackToDefaultAuthor() {
        val entity = FdroidEntity("pkg", "")

        assertEquals(FdroidEntity.DEFAULT_FDROID_AUTHOR_NAME, entity.authorName)
    }

    @Test
    fun fdroidEntityKeepsProvidedAuthor() {
        val entity = FdroidEntity("pkg", "Author")

        assertEquals("Author", entity.authorName)
    }
}