Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 0 additions & 2 deletions sdk/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -127,15 +127,13 @@ 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"
testImplementation "io.mockk:mockk:$mockk_version"
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"
}

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -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()
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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"

Expand Down