Renamed TanMediumKlasseVersion to TanMediumKlasse
This commit is contained in:
parent
553b55e090
commit
9af7c53272
|
@ -7,7 +7,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.KundensystemID
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.KundensystemStatusWerte
|
import net.dankito.fints.messages.datenelemente.implementierte.KundensystemStatusWerte
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.signatur.Sicherheitsfunktion
|
import net.dankito.fints.messages.datenelemente.implementierte.signatur.Sicherheitsfunktion
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMedienArtVersion
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMedienArtVersion
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMediumKlasseVersion
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMediumKlasse
|
||||||
import net.dankito.fints.model.*
|
import net.dankito.fints.model.*
|
||||||
import net.dankito.fints.response.InstituteSegmentId
|
import net.dankito.fints.response.InstituteSegmentId
|
||||||
import net.dankito.fints.response.Response
|
import net.dankito.fints.response.Response
|
||||||
|
@ -305,7 +305,7 @@ open class FinTsClient @JvmOverloads constructor(
|
||||||
|
|
||||||
open fun getTanMediaListAsync(bank: BankData, customer: CustomerData,
|
open fun getTanMediaListAsync(bank: BankData, customer: CustomerData,
|
||||||
tanMediaKind: TanMedienArtVersion = TanMedienArtVersion.Alle,
|
tanMediaKind: TanMedienArtVersion = TanMedienArtVersion.Alle,
|
||||||
tanMediumClass: TanMediumKlasseVersion = TanMediumKlasseVersion.AlleMedien,
|
tanMediumClass: TanMediumKlasse = TanMediumKlasse.AlleMedien,
|
||||||
callback: (GetTanMediaListResponse) -> Unit) {
|
callback: (GetTanMediaListResponse) -> Unit) {
|
||||||
|
|
||||||
threadPool.runAsync {
|
threadPool.runAsync {
|
||||||
|
@ -314,7 +314,7 @@ open class FinTsClient @JvmOverloads constructor(
|
||||||
}
|
}
|
||||||
|
|
||||||
open fun getTanMediaList(bank: BankData, customer: CustomerData, tanMediaKind: TanMedienArtVersion = TanMedienArtVersion.Alle,
|
open fun getTanMediaList(bank: BankData, customer: CustomerData, tanMediaKind: TanMedienArtVersion = TanMedienArtVersion.Alle,
|
||||||
tanMediumClass: TanMediumKlasseVersion = TanMediumKlasseVersion.AlleMedien): GetTanMediaListResponse {
|
tanMediumClass: TanMediumKlasse = TanMediumKlasse.AlleMedien): GetTanMediaListResponse {
|
||||||
|
|
||||||
val dialogData = DialogData()
|
val dialogData = DialogData()
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import net.dankito.fints.extensions.containsAny
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.Aufsetzpunkt
|
import net.dankito.fints.messages.datenelemente.implementierte.Aufsetzpunkt
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.Synchronisierungsmodus
|
import net.dankito.fints.messages.datenelemente.implementierte.Synchronisierungsmodus
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMedienArtVersion
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMedienArtVersion
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMediumKlasseVersion
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMediumKlasse
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanProcess
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanProcess
|
||||||
import net.dankito.fints.messages.segmente.ISegmentNumberGenerator
|
import net.dankito.fints.messages.segmente.ISegmentNumberGenerator
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
|
@ -141,7 +141,7 @@ open class MessageBuilder(protected val generator: ISegmentNumberGenerator = Seg
|
||||||
|
|
||||||
open fun createGetTanMediaListMessage(bank: BankData, customer: CustomerData, dialogData: DialogData,
|
open fun createGetTanMediaListMessage(bank: BankData, customer: CustomerData, dialogData: DialogData,
|
||||||
tanMediaKind: TanMedienArtVersion = TanMedienArtVersion.Alle,
|
tanMediaKind: TanMedienArtVersion = TanMedienArtVersion.Alle,
|
||||||
tanMediumClass: TanMediumKlasseVersion = TanMediumKlasseVersion.AlleMedien): MessageBuilderResult {
|
tanMediumClass: TanMediumKlasse = TanMediumKlasse.AlleMedien): MessageBuilderResult {
|
||||||
|
|
||||||
val result = getSupportedVersionsOfJob(CustomerSegmentId.TanMediaList, customer, listOf(2, 3, 4, 5))
|
val result = getSupportedVersionsOfJob(CustomerSegmentId.TanMediaList, customer, listOf(2, 3, 4, 5))
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ import java.util.*
|
||||||
|
|
||||||
|
|
||||||
class TanGeneratorTanMedium(
|
class TanGeneratorTanMedium(
|
||||||
mediumClass: TanMediumKlasseVersion,
|
mediumClass: TanMediumKlasse,
|
||||||
status: TanMediumStatus,
|
status: TanMediumStatus,
|
||||||
val cardNumber: String,
|
val cardNumber: String,
|
||||||
val followUpCardNumber: String?,
|
val followUpCardNumber: String?,
|
||||||
|
|
|
@ -9,7 +9,7 @@ package net.dankito.fints.messages.datenelemente.implementierte.tan
|
||||||
* Wird das Datenelement „TAN-Medium-Klasse“ mit „B“ (bilateral vereinbart) belegt, so muss im Element „Sicherheitsfunktion, kodiert“ die entsprechende Sicherheitsfunktion in der DEG „Verfahrensparameter Zwei-Schritt-Verfahren“ referenziert werden.
|
* Wird das Datenelement „TAN-Medium-Klasse“ mit „B“ (bilateral vereinbart) belegt, so muss im Element „Sicherheitsfunktion, kodiert“ die entsprechende Sicherheitsfunktion in der DEG „Verfahrensparameter Zwei-Schritt-Verfahren“ referenziert werden.
|
||||||
*/
|
*/
|
||||||
open class TanMedium(
|
open class TanMedium(
|
||||||
val mediumClass: TanMediumKlasseVersion,
|
val mediumClass: TanMediumKlasse,
|
||||||
val status: TanMediumStatus
|
val status: TanMediumStatus
|
||||||
) {
|
) {
|
||||||
|
|
||||||
|
|
|
@ -7,7 +7,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.ICodeEnum
|
||||||
* dient der Klassifizierung der möglichen TAN-Medien. Bei Geschäftsvorfällen zum
|
* dient der Klassifizierung der möglichen TAN-Medien. Bei Geschäftsvorfällen zum
|
||||||
* Management der TAN-Medien kann aus diesen nach folgender Codierung selektiert werden.
|
* Management der TAN-Medien kann aus diesen nach folgender Codierung selektiert werden.
|
||||||
*/
|
*/
|
||||||
enum class TanMediumKlasseVersion(override val code: String, val supportedHkTabVersions: List<Int>) : ICodeEnum {
|
enum class TanMediumKlasse(override val code: String, val supportedHkTabVersions: List<Int>) : ICodeEnum {
|
||||||
|
|
||||||
AlleMedien("A", listOf(4, 5)),
|
AlleMedien("A", listOf(4, 5)),
|
||||||
|
|
|
@ -4,7 +4,7 @@ import net.dankito.fints.messages.Existenzstatus
|
||||||
import net.dankito.fints.messages.datenelemente.abgeleiteteformate.Code
|
import net.dankito.fints.messages.datenelemente.abgeleiteteformate.Code
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.allCodes
|
import net.dankito.fints.messages.datenelemente.implementierte.allCodes
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMedienArtVersion
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMedienArtVersion
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMediumKlasseVersion
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMediumKlasse
|
||||||
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
import net.dankito.fints.messages.datenelementgruppen.implementierte.Segmentkopf
|
||||||
import net.dankito.fints.messages.segmente.Segment
|
import net.dankito.fints.messages.segmente.Segment
|
||||||
import net.dankito.fints.messages.segmente.id.CustomerSegmentId
|
import net.dankito.fints.messages.segmente.id.CustomerSegmentId
|
||||||
|
@ -14,20 +14,20 @@ open class TanGeneratorListeAnzeigen(
|
||||||
segmentVersion: Int,
|
segmentVersion: Int,
|
||||||
segmentNumber: Int,
|
segmentNumber: Int,
|
||||||
tanMediaKind: TanMedienArtVersion = TanMedienArtVersion.Alle,
|
tanMediaKind: TanMedienArtVersion = TanMedienArtVersion.Alle,
|
||||||
tanMediumClass: TanMediumKlasseVersion = TanMediumKlasseVersion.AlleMedien
|
tanMediumClass: TanMediumKlasse = TanMediumKlasse.AlleMedien
|
||||||
)
|
)
|
||||||
: Segment(listOf(
|
: Segment(listOf(
|
||||||
Segmentkopf(CustomerSegmentId.TanMediaList, segmentVersion, segmentNumber),
|
Segmentkopf(CustomerSegmentId.TanMediaList, segmentVersion, segmentNumber),
|
||||||
Code(tanMediaKind, allCodes<TanMedienArtVersion>(), Existenzstatus.Mandatory),
|
Code(tanMediaKind, allCodes<TanMedienArtVersion>(), Existenzstatus.Mandatory),
|
||||||
Code(tanMediumClass, allCodes<TanMediumKlasseVersion>(), Existenzstatus.Mandatory)
|
Code(tanMediumClass, allCodes<TanMediumKlasse>(), Existenzstatus.Mandatory)
|
||||||
)) {
|
)) {
|
||||||
|
|
||||||
init {
|
init {
|
||||||
val supportedMediaClasses = TanMediumKlasseVersion.values().filter { it.supportedHkTabVersions.contains(segmentVersion) }
|
val supportedMediaClasses = TanMediumKlasse.values().filter { it.supportedHkTabVersions.contains(segmentVersion) }
|
||||||
|
|
||||||
if (supportedMediaClasses.contains(tanMediumClass) == false) {
|
if (supportedMediaClasses.contains(tanMediumClass) == false) {
|
||||||
throw UnsupportedOperationException("Value $tanMediumClass for TAN medium class is not valid for HKTAB version $segmentVersion. " +
|
throw UnsupportedOperationException("Value $tanMediumClass for TAN medium class is not valid for HKTAB version $segmentVersion. " +
|
||||||
"Supported values are: " + TanMediumKlasseVersion.values().filter { it.supportedHkTabVersions.contains(segmentVersion) }.map { it.code })
|
"Supported values are: " + TanMediumKlasse.values().filter { it.supportedHkTabVersions.contains(segmentVersion) }.map { it.code })
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -411,10 +411,10 @@ open class ResponseParser @JvmOverloads constructor(
|
||||||
|
|
||||||
protected open fun parseTanMedium(hitabVersion: Int, dataElements: List<String>): TanMedium {
|
protected open fun parseTanMedium(hitabVersion: Int, dataElements: List<String>): TanMedium {
|
||||||
val mediumClassCode = dataElements[0]
|
val mediumClassCode = dataElements[0]
|
||||||
val mediumClass = parseCodeEnum(mediumClassCode, TanMediumKlasseVersion.values())
|
val mediumClass = parseCodeEnum(mediumClassCode, TanMediumKlasse.values())
|
||||||
if (mediumClass.supportedHkTabVersions.contains(hitabVersion) == false) {
|
if (mediumClass.supportedHkTabVersions.contains(hitabVersion) == false) {
|
||||||
throw UnsupportedOperationException("$mediumClassCode is not a valid medium class for HITAB version $hitabVersion. " +
|
throw UnsupportedOperationException("$mediumClassCode is not a valid medium class for HITAB version $hitabVersion. " +
|
||||||
"Supported values are: " + TanMediumKlasseVersion.values().filter { it.supportedHkTabVersions.contains(hitabVersion) }.map { it.code })
|
"Supported values are: " + TanMediumKlasse.values().filter { it.supportedHkTabVersions.contains(hitabVersion) }.map { it.code })
|
||||||
}
|
}
|
||||||
|
|
||||||
val status = parseCodeEnum(dataElements[1], TanMediumStatus.values())
|
val status = parseCodeEnum(dataElements[1], TanMediumStatus.values())
|
||||||
|
@ -424,12 +424,12 @@ open class ResponseParser @JvmOverloads constructor(
|
||||||
val remainingDataElements = dataElements.subList(2, dataElements.size - 2)
|
val remainingDataElements = dataElements.subList(2, dataElements.size - 2)
|
||||||
|
|
||||||
return when (mediumClass) {
|
return when (mediumClass) {
|
||||||
TanMediumKlasseVersion.TanGenerator -> parseTanGeneratorTanMedium(mediumClass, status, hitabVersion, remainingDataElements)
|
TanMediumKlasse.TanGenerator -> parseTanGeneratorTanMedium(mediumClass, status, hitabVersion, remainingDataElements)
|
||||||
else -> TanMedium(mediumClass, status)
|
else -> TanMedium(mediumClass, status)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected open fun parseTanGeneratorTanMedium(mediumClass: TanMediumKlasseVersion, status: TanMediumStatus,
|
protected open fun parseTanGeneratorTanMedium(mediumClass: TanMediumKlasse, status: TanMediumStatus,
|
||||||
hitabVersion: Int, dataElements: List<String>): TanGeneratorTanMedium {
|
hitabVersion: Int, dataElements: List<String>): TanGeneratorTanMedium {
|
||||||
|
|
||||||
val cardType = if (hitabVersion < 2) null else parseStringToNullIfEmpty(dataElements[2]) // TODO: may parse to number
|
val cardType = if (hitabVersion < 2) null else parseStringToNullIfEmpty(dataElements[2]) // TODO: may parse to number
|
||||||
|
|
|
@ -7,7 +7,7 @@ import net.dankito.fints.messages.datenelemente.implementierte.KundensystemStatu
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.KundensystemStatusWerte
|
import net.dankito.fints.messages.datenelemente.implementierte.KundensystemStatusWerte
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanEinsatzOption
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanEinsatzOption
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMedienArtVersion
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMedienArtVersion
|
||||||
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMediumKlasseVersion
|
import net.dankito.fints.messages.datenelemente.implementierte.tan.TanMediumKlasse
|
||||||
import net.dankito.fints.model.*
|
import net.dankito.fints.model.*
|
||||||
import net.dankito.fints.model.mapper.BankDataMapper
|
import net.dankito.fints.model.mapper.BankDataMapper
|
||||||
import net.dankito.fints.response.client.FinTsClientResponse
|
import net.dankito.fints.response.client.FinTsClientResponse
|
||||||
|
@ -139,7 +139,7 @@ class FinTsClientTest {
|
||||||
fun getTanMediaList() {
|
fun getTanMediaList() {
|
||||||
|
|
||||||
// when
|
// when
|
||||||
val result = underTest.getTanMediaList(Bank, Customer, TanMedienArtVersion.Alle, TanMediumKlasseVersion.AlleMedien)
|
val result = underTest.getTanMediaList(Bank, Customer, TanMedienArtVersion.Alle, TanMediumKlasse.AlleMedien)
|
||||||
|
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
@ -155,7 +155,7 @@ class FinTsClientTest {
|
||||||
fun getTanMediaList_UnsupportedTanMediumClass() {
|
fun getTanMediaList_UnsupportedTanMediumClass() {
|
||||||
|
|
||||||
// when
|
// when
|
||||||
underTest.getTanMediaList(Bank, Customer, TanMedienArtVersion.Alle, TanMediumKlasseVersion.BilateralVereinbart)
|
underTest.getTanMediaList(Bank, Customer, TanMedienArtVersion.Alle, TanMediumKlasse.BilateralVereinbart)
|
||||||
|
|
||||||
|
|
||||||
// then
|
// then
|
||||||
|
|
|
@ -702,8 +702,8 @@ class ResponseParserTest : FinTsTestBase() {
|
||||||
result.getFirstSegmentById<TanMediaList>(InstituteSegmentId.TanMediaList)?.let { segment ->
|
result.getFirstSegmentById<TanMediaList>(InstituteSegmentId.TanMediaList)?.let { segment ->
|
||||||
assertThat(segment.usageOption).isEqualTo(TanEinsatzOption.KundeKannGenauEinMediumZuEinerZeitNutzen)
|
assertThat(segment.usageOption).isEqualTo(TanEinsatzOption.KundeKannGenauEinMediumZuEinerZeitNutzen)
|
||||||
assertThat(segment.tanMedia).containsOnly(
|
assertThat(segment.tanMedia).containsOnly(
|
||||||
TanGeneratorTanMedium(TanMediumKlasseVersion.TanGenerator, TanMediumStatus.AktivFolgekarte, oldCardNumber, followUpCardNumber, null, null, null, mediaName),
|
TanGeneratorTanMedium(TanMediumKlasse.TanGenerator, TanMediumStatus.AktivFolgekarte, oldCardNumber, followUpCardNumber, null, null, null, mediaName),
|
||||||
TanGeneratorTanMedium(TanMediumKlasseVersion.TanGenerator, TanMediumStatus.Verfuegbar, followUpCardNumber, null, null, null, null, mediaName)
|
TanGeneratorTanMedium(TanMediumKlasse.TanGenerator, TanMediumStatus.Verfuegbar, followUpCardNumber, null, null, null, null, mediaName)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
?: run { Assert.fail("No segment of type TanMediaList found in ${result.receivedSegments}") }
|
?: run { Assert.fail("No segment of type TanMediaList found in ${result.receivedSegments}") }
|
||||||
|
|
Loading…
Reference in New Issue