Loading feature/migration/qrcode/src/main/kotlin/app/k9mail/feature/migration/qrcode/QrCodeModule.kt +16 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,10 @@ package app.k9mail.feature.migration.qrcode import app.k9mail.feature.migration.qrcode.domain.QrCodeDomainContract.UseCase import app.k9mail.feature.migration.qrcode.domain.usecase.QrCodePayloadReader import app.k9mail.feature.migration.qrcode.domain.usecase.QrCodeSettingsWriter import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadAdapter import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadMapper import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadParser import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadValidator import app.k9mail.feature.migration.qrcode.settings.DefaultUuidGenerator import app.k9mail.feature.migration.qrcode.settings.UuidGenerator import app.k9mail.feature.migration.qrcode.settings.XmlSettingWriter Loading @@ -18,7 +22,18 @@ val qrCodeModule = module { ) } factory<UseCase.QrCodePayloadReader> { QrCodePayloadReader() } factory { QrCodePayloadAdapter() } factory { QrCodePayloadParser(qrCodePayloadAdapter = get()) } factory { QrCodePayloadValidator() } factory { QrCodePayloadMapper(qrCodePayloadValidator = get()) } factory<UseCase.QrCodePayloadReader> { QrCodePayloadReader( parser = get(), mapper = get(), ) } factory<UseCase.QrCodeSettingsWriter> { QrCodeSettingsWriter( context = get(), Loading feature/migration/qrcode/src/main/kotlin/app/k9mail/feature/migration/qrcode/domain/usecase/QrCodePayloadReader.kt +2 −2 Original line number Diff line number Diff line Loading @@ -6,8 +6,8 @@ import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadMapper import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadParser internal class QrCodePayloadReader( private val parser: QrCodePayloadParser = QrCodePayloadParser(), private val mapper: QrCodePayloadMapper = QrCodePayloadMapper(), private val parser: QrCodePayloadParser, private val mapper: QrCodePayloadMapper, ) : UseCase.QrCodePayloadReader { override fun read(payload: String): AccountData? { val parsedData = parser.parse(payload) ?: return null Loading feature/migration/qrcode/src/main/kotlin/app/k9mail/feature/migration/qrcode/payload/QrCodePayloadMapper.kt +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ import app.k9mail.core.common.net.toPort import app.k9mail.feature.migration.qrcode.domain.entity.AccountData internal class QrCodePayloadMapper( private val qrCodePayloadValidator: QrCodePayloadValidator = QrCodePayloadValidator(), private val qrCodePayloadValidator: QrCodePayloadValidator, ) { fun toAccountData(data: QrCodeData): AccountData? { return if (qrCodePayloadValidator.isValid(data)) { Loading feature/migration/qrcode/src/main/kotlin/app/k9mail/feature/migration/qrcode/payload/QrCodePayloadParser.kt +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ import java.io.IOException import timber.log.Timber internal class QrCodePayloadParser( private val qrCodePayloadAdapter: QrCodePayloadAdapter = QrCodePayloadAdapter(), private val qrCodePayloadAdapter: QrCodePayloadAdapter, ) { /** * Parses the QR code payload as JSON and reads it into [QrCodeData]. Loading feature/migration/qrcode/src/test/kotlin/app/k9mail/feature/migration/qrcode/domain/usecase/QrCodePayloadReaderTest.kt +8 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ import app.k9mail.core.common.mail.toUserEmailAddress import app.k9mail.core.common.net.toHostname import app.k9mail.core.common.net.toPort import app.k9mail.feature.migration.qrcode.domain.entity.AccountData import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadAdapter import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadMapper import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadParser import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadValidator import assertk.assertThat import assertk.assertions.isEqualTo import assertk.assertions.isNotNull Loading @@ -12,7 +16,10 @@ import kotlin.test.Test @Suppress("LongMethod") class QrCodePayloadReaderTest { private val reader = QrCodePayloadReader() private val reader = QrCodePayloadReader( parser = QrCodePayloadParser(QrCodePayloadAdapter()), mapper = QrCodePayloadMapper(QrCodePayloadValidator()), ) @Test fun `one account, one identity, no passwords`() { Loading Loading
feature/migration/qrcode/src/main/kotlin/app/k9mail/feature/migration/qrcode/QrCodeModule.kt +16 −1 Original line number Diff line number Diff line Loading @@ -3,6 +3,10 @@ package app.k9mail.feature.migration.qrcode import app.k9mail.feature.migration.qrcode.domain.QrCodeDomainContract.UseCase import app.k9mail.feature.migration.qrcode.domain.usecase.QrCodePayloadReader import app.k9mail.feature.migration.qrcode.domain.usecase.QrCodeSettingsWriter import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadAdapter import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadMapper import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadParser import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadValidator import app.k9mail.feature.migration.qrcode.settings.DefaultUuidGenerator import app.k9mail.feature.migration.qrcode.settings.UuidGenerator import app.k9mail.feature.migration.qrcode.settings.XmlSettingWriter Loading @@ -18,7 +22,18 @@ val qrCodeModule = module { ) } factory<UseCase.QrCodePayloadReader> { QrCodePayloadReader() } factory { QrCodePayloadAdapter() } factory { QrCodePayloadParser(qrCodePayloadAdapter = get()) } factory { QrCodePayloadValidator() } factory { QrCodePayloadMapper(qrCodePayloadValidator = get()) } factory<UseCase.QrCodePayloadReader> { QrCodePayloadReader( parser = get(), mapper = get(), ) } factory<UseCase.QrCodeSettingsWriter> { QrCodeSettingsWriter( context = get(), Loading
feature/migration/qrcode/src/main/kotlin/app/k9mail/feature/migration/qrcode/domain/usecase/QrCodePayloadReader.kt +2 −2 Original line number Diff line number Diff line Loading @@ -6,8 +6,8 @@ import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadMapper import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadParser internal class QrCodePayloadReader( private val parser: QrCodePayloadParser = QrCodePayloadParser(), private val mapper: QrCodePayloadMapper = QrCodePayloadMapper(), private val parser: QrCodePayloadParser, private val mapper: QrCodePayloadMapper, ) : UseCase.QrCodePayloadReader { override fun read(payload: String): AccountData? { val parsedData = parser.parse(payload) ?: return null Loading
feature/migration/qrcode/src/main/kotlin/app/k9mail/feature/migration/qrcode/payload/QrCodePayloadMapper.kt +1 −1 Original line number Diff line number Diff line Loading @@ -6,7 +6,7 @@ import app.k9mail.core.common.net.toPort import app.k9mail.feature.migration.qrcode.domain.entity.AccountData internal class QrCodePayloadMapper( private val qrCodePayloadValidator: QrCodePayloadValidator = QrCodePayloadValidator(), private val qrCodePayloadValidator: QrCodePayloadValidator, ) { fun toAccountData(data: QrCodeData): AccountData? { return if (qrCodePayloadValidator.isValid(data)) { Loading
feature/migration/qrcode/src/main/kotlin/app/k9mail/feature/migration/qrcode/payload/QrCodePayloadParser.kt +1 −1 Original line number Diff line number Diff line Loading @@ -5,7 +5,7 @@ import java.io.IOException import timber.log.Timber internal class QrCodePayloadParser( private val qrCodePayloadAdapter: QrCodePayloadAdapter = QrCodePayloadAdapter(), private val qrCodePayloadAdapter: QrCodePayloadAdapter, ) { /** * Parses the QR code payload as JSON and reads it into [QrCodeData]. Loading
feature/migration/qrcode/src/test/kotlin/app/k9mail/feature/migration/qrcode/domain/usecase/QrCodePayloadReaderTest.kt +8 −1 Original line number Diff line number Diff line Loading @@ -4,6 +4,10 @@ import app.k9mail.core.common.mail.toUserEmailAddress import app.k9mail.core.common.net.toHostname import app.k9mail.core.common.net.toPort import app.k9mail.feature.migration.qrcode.domain.entity.AccountData import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadAdapter import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadMapper import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadParser import app.k9mail.feature.migration.qrcode.payload.QrCodePayloadValidator import assertk.assertThat import assertk.assertions.isEqualTo import assertk.assertions.isNotNull Loading @@ -12,7 +16,10 @@ import kotlin.test.Test @Suppress("LongMethod") class QrCodePayloadReaderTest { private val reader = QrCodePayloadReader() private val reader = QrCodePayloadReader( parser = QrCodePayloadParser(QrCodePayloadAdapter()), mapper = QrCodePayloadMapper(QrCodePayloadValidator()), ) @Test fun `one account, one identity, no passwords`() { Loading