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

Unverified Commit 3bc0bada authored by cketti's avatar cketti Committed by GitHub
Browse files

Merge pull request #7099 from thundernest/remove_unused_code

Remove unused code
parents 0a2880f4 191693a5
Loading
Loading
Loading
Loading
+0 −22
Original line number Diff line number Diff line
@@ -4,8 +4,6 @@ import app.k9mail.autodiscovery.api.AutoDiscoveryService
import app.k9mail.autodiscovery.service.RealAutoDiscoveryService
import app.k9mail.core.common.coreCommonModule
import app.k9mail.feature.account.setup.domain.DomainContract
import app.k9mail.feature.account.setup.domain.usecase.CheckIncomingServerConfig
import app.k9mail.feature.account.setup.domain.usecase.CheckOutgoingServerConfig
import app.k9mail.feature.account.setup.domain.usecase.CreateAccount
import app.k9mail.feature.account.setup.domain.usecase.GetAutoDiscovery
import app.k9mail.feature.account.setup.domain.usecase.ValidateServerSettings
@@ -70,26 +68,6 @@ val featureAccountSetupModule: Module = module {
        )
    }

    factory<DomainContract.UseCase.CheckIncomingServerConfig> {
        CheckIncomingServerConfig(
            imapValidator = ImapServerSettingsValidator(
                trustedSocketFactory = get(),
                oAuth2TokenProvider = null,
                clientIdAppName = "null",
            ),
            pop3Validator = Pop3ServerSettingsValidator(
                trustedSocketFactory = get(),
            ),
        )
    }
    factory<DomainContract.UseCase.CheckOutgoingServerConfig> {
        CheckOutgoingServerConfig(
            smtpValidator = SmtpServerSettingsValidator(
                trustedSocketFactory = get(),
                oAuth2TokenProvider = null,
            ),
        )
    }
    factory<DomainContract.UseCase.CreateAccount> {
        CreateAccount(
            accountCreator = get(),
+0 −12
Original line number Diff line number Diff line
@@ -3,7 +3,6 @@ package app.k9mail.feature.account.setup.domain
import app.k9mail.autodiscovery.api.AutoDiscoveryResult
import app.k9mail.core.common.domain.usecase.validation.ValidationResult
import app.k9mail.feature.account.setup.domain.entity.AccountOptions
import app.k9mail.feature.account.setup.domain.entity.IncomingProtocolType
import com.fsck.k9.mail.ServerSettings
import com.fsck.k9.mail.server.ServerSettingsValidationResult

@@ -18,17 +17,6 @@ interface DomainContract {
            suspend fun execute(settings: ServerSettings): ServerSettingsValidationResult
        }

        fun interface CheckIncomingServerConfig {
            suspend fun execute(
                protocolType: IncomingProtocolType,
                settings: ServerSettings,
            ): ServerSettingsValidationResult
        }

        fun interface CheckOutgoingServerConfig {
            suspend fun execute(settings: ServerSettings): ServerSettingsValidationResult
        }

        fun interface CreateAccount {
            suspend fun execute(
                emailAddress: String,
+0 −26
Original line number Diff line number Diff line
package app.k9mail.feature.account.setup.domain.usecase

import app.k9mail.feature.account.setup.domain.DomainContract
import app.k9mail.feature.account.setup.domain.entity.IncomingProtocolType
import com.fsck.k9.mail.ServerSettings
import com.fsck.k9.mail.server.ServerSettingsValidationResult
import com.fsck.k9.mail.server.ServerSettingsValidator
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

internal class CheckIncomingServerConfig(
    private val imapValidator: ServerSettingsValidator,
    private val pop3Validator: ServerSettingsValidator,
    private val coroutineDispatcher: CoroutineDispatcher = Dispatchers.IO,
) : DomainContract.UseCase.CheckIncomingServerConfig {
    override suspend fun execute(
        protocolType: IncomingProtocolType,
        settings: ServerSettings,
    ): ServerSettingsValidationResult = withContext(coroutineDispatcher) {
        return@withContext when (protocolType) {
            IncomingProtocolType.IMAP -> imapValidator.checkServerSettings(settings)
            IncomingProtocolType.POP3 -> pop3Validator.checkServerSettings(settings)
        }
    }
}
+0 −20
Original line number Diff line number Diff line
package app.k9mail.feature.account.setup.domain.usecase

import app.k9mail.feature.account.setup.domain.DomainContract
import com.fsck.k9.mail.ServerSettings
import com.fsck.k9.mail.server.ServerSettingsValidationResult
import com.fsck.k9.mail.server.ServerSettingsValidator
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext

internal class CheckOutgoingServerConfig(
    private val smtpValidator: ServerSettingsValidator,
    private val coroutineDispatcher: CoroutineDispatcher = Dispatchers.IO,
) : DomainContract.UseCase.CheckOutgoingServerConfig {
    override suspend fun execute(settings: ServerSettings): ServerSettingsValidationResult {
        return withContext(coroutineDispatcher) {
            smtpValidator.checkServerSettings(settings)
        }
    }
}
+0 −86
Original line number Diff line number Diff line
package app.k9mail.feature.account.setup.domain.usecase

import app.k9mail.feature.account.setup.domain.entity.IncomingProtocolType
import assertk.assertThat
import assertk.assertions.isEqualTo
import com.fsck.k9.mail.AuthType
import com.fsck.k9.mail.ConnectionSecurity
import com.fsck.k9.mail.ServerSettings
import com.fsck.k9.mail.server.ServerSettingsValidationResult
import java.io.IOException
import kotlinx.coroutines.test.runTest
import org.junit.Test

class CheckIncomingServerConfigTest {

    @Test
    fun `should check with imap validator when protocol is imap`() = runTest {
        val testSubject = CheckIncomingServerConfig(
            imapValidator = { ServerSettingsValidationResult.Success },
            pop3Validator = { ServerSettingsValidationResult.NetworkError(IOException("Failed")) },
        )
        val protocolType = IncomingProtocolType.IMAP
        val serverSettings = serverSettings(protocolType = protocolType)

        val result = testSubject.execute(protocolType, serverSettings)

        assertThat(result).isEqualTo(ServerSettingsValidationResult.Success)
    }

    @Test
    fun `should check with imap validator when protocol is imap and return failure`() = runTest {
        val failure = ServerSettingsValidationResult.ServerError("Failed")
        val testSubject = CheckIncomingServerConfig(
            imapValidator = { failure },
            pop3Validator = { ServerSettingsValidationResult.NetworkError(IOException("Failed")) },
        )
        val protocolType = IncomingProtocolType.IMAP
        val serverSettings = serverSettings(protocolType = protocolType)

        val result = testSubject.execute(protocolType, serverSettings)

        assertThat(result).isEqualTo(failure)
    }

    @Test
    fun `should check with pop3 validator when protocol is pop3`() = runTest {
        val testSubject = CheckIncomingServerConfig(
            imapValidator = { ServerSettingsValidationResult.NetworkError(IOException("Failed")) },
            pop3Validator = { ServerSettingsValidationResult.Success },
        )
        val protocolType = IncomingProtocolType.POP3
        val serverSettings = serverSettings(protocolType = protocolType)

        val result = testSubject.execute(protocolType, serverSettings)

        assertThat(result).isEqualTo(ServerSettingsValidationResult.Success)
    }

    @Test
    fun `should check with pop3 validator when protocol is pop3 and return failure`() = runTest {
        val failure = ServerSettingsValidationResult.ServerError("Failed")
        val testSubject = CheckIncomingServerConfig(
            imapValidator = { ServerSettingsValidationResult.NetworkError(IOException("Failed")) },
            pop3Validator = { failure },
        )
        val protocolType = IncomingProtocolType.POP3
        val serverSettings = serverSettings(protocolType = protocolType)

        val result = testSubject.execute(protocolType, serverSettings)

        assertThat(result).isEqualTo(failure)
    }

    private companion object {
        fun serverSettings(protocolType: IncomingProtocolType) = ServerSettings(
            type = protocolType.defaultName,
            host = "${protocolType.defaultName}.example.org",
            port = 993,
            connectionSecurity = ConnectionSecurity.SSL_TLS_REQUIRED,
            authenticationType = AuthType.PLAIN,
            username = "user",
            password = "password",
            clientCertificateAlias = null,
        )
    }
}
Loading