diff --git a/sdk/build.gradle b/sdk/build.gradle index 493e24d4..4d86b863 100644 --- a/sdk/build.gradle +++ b/sdk/build.gradle @@ -127,7 +127,6 @@ dependencies { androidTestImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" androidTestImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" androidTestImplementation "io.mockk:mockk-android:$mockk_version" - androidTestImplementation "android.arch.core:core-testing:1.1.1" testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version" testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version" @@ -135,7 +134,6 @@ dependencies { testImplementation 'com.willowtreeapps.assertk:assertk-jvm:0.21' testImplementation "org.assertj:assertj-core:$assertj_test_version" testImplementation "junit:junit:$junit_version" - testImplementation "android.arch.core:core-testing:1.1.1" } /** diff --git a/sdk/src/test/java/com/microsoft/did/sdk/credential/service/models/oidc/PinDetailsTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/credential/service/models/oidc/PinDetailsTest.kt new file mode 100644 index 00000000..f3d9ae2c --- /dev/null +++ b/sdk/src/test/java/com/microsoft/did/sdk/credential/service/models/oidc/PinDetailsTest.kt @@ -0,0 +1,81 @@ +// Copyright (c) Microsoft Corporation. All rights reserved + +package com.microsoft.did.sdk.credential.service.models.oidc + +import assertk.assertThat +import assertk.assertions.isEqualTo +import assertk.assertions.isNull +import com.microsoft.did.sdk.di.defaultTestSerializer +import kotlinx.serialization.SerializationException +import org.assertj.core.api.Assertions +import org.junit.Test + +class PinDetailsTest { + private val pinDetailsHashedFlowSerializedString = """{ + "length": 4, + "type": "numeric", + "alg": "sha256", + "iterations": 1, + "salt": "sakGSIfjwqroREOujhuj3j", + "hash": "C1if7XayVIBrhnCfyCnsTiMn/myBI0XQ13vtfBGIUj8=" + }""" + + private val pinDetailsNonHashedFlowSerializedString = """{ + "length": 4, + "type": "numeric", + "hash": "C1if7XayVIBrhnCfyCnsTiMn/myBI0XQ13vtfBGIUj8=" + }""" + + private val pinDetailsWithNoLengthSerializedString = """{ + "type": "numeric", + "hash": "C1if7XayVIBrhnCfyCnsTiMn/myBI0XQ13vtfBGIUj8=" + }""" + + private val pinDetailsWithNoTypeSerializedString = """{ + "length": 4, + "hash": "C1if7XayVIBrhnCfyCnsTiMn/myBI0XQ13vtfBGIUj8=" + }""" + + private val pinDetailsWithNoHashSerializedString = """{ + "length": 4, + "type": "numeric" + }""" + + @Test + fun `test serialization of pin details for hashed flow passes`() { + val pinDetail = defaultTestSerializer.decodeFromString(PinDetails.serializer(), pinDetailsHashedFlowSerializedString) + assertThat(pinDetail.length).isEqualTo(4) + assertThat(pinDetail.salt).isEqualTo("sakGSIfjwqroREOujhuj3j") + assertThat(pinDetail.type).isEqualTo("numeric") + } + + @Test + fun `test serialization of pin details for non hashed flow passes`() { + val pinDetail = defaultTestSerializer.decodeFromString(PinDetails.serializer(), pinDetailsNonHashedFlowSerializedString) + assertThat(pinDetail.length).isEqualTo(4) + assertThat(pinDetail.type).isEqualTo("numeric") + assertThat(pinDetail.salt).isNull() + } + + @Test + fun `test serialization of pin details when missing length fails`() { + Assertions.assertThatThrownBy { + defaultTestSerializer.decodeFromString(PinDetails.serializer(), pinDetailsWithNoLengthSerializedString) + }.isInstanceOf(SerializationException::class.java) + } + + @Test + fun `test serialization of pin details when missing type fails`() { + Assertions.assertThatThrownBy { + defaultTestSerializer.decodeFromString(PinDetails.serializer(), pinDetailsWithNoTypeSerializedString) + }.isInstanceOf(SerializationException::class.java) + } + + @Test + fun `test serialization of pin details when missing hash passes`() { + val pinDetail = defaultTestSerializer.decodeFromString(PinDetails.serializer(), pinDetailsWithNoHashSerializedString) + assertThat(pinDetail.type).isEqualTo("numeric") + assertThat(pinDetail.length).isEqualTo(4) + assertThat(pinDetail.salt).isNull() + } +} \ No newline at end of file diff --git a/sdk/src/test/java/com/microsoft/did/sdk/util/ClaimFormatterTest.kt b/sdk/src/test/java/com/microsoft/did/sdk/util/ClaimFormatterTest.kt index 6cda1553..b2f74188 100644 --- a/sdk/src/test/java/com/microsoft/did/sdk/util/ClaimFormatterTest.kt +++ b/sdk/src/test/java/com/microsoft/did/sdk/util/ClaimFormatterTest.kt @@ -10,7 +10,7 @@ class ClaimFormatterTest { private val suppliedClaimValueForText = "claim value" private val expectedClaimValueForIncorrectDate = "?" private val suppliedClaimValueForDateInMills = 1621366869159L - private val expectedFormattedDateTimeInDifferentTimeZone = listOf("May 18, 2021, 12:41:09 PM", "May 18, 2021, 7:41:09 PM", "May 18, 2021, 9:41:09 PM") + private val expectedFormattedDateTimeInDifferentTimeZone = listOf("May 18, 2021, 12:41:09 PM", "May 18, 2021, 7:41:09 PM", "May 18, 2021, 9:41:09 PM", "May 18, 2021, 3:41:09 PM") private val suppliedClaimValueForDateInSeconds = 1621366850L private val expectedFormattedDate = "May 18, 2021"