diff --git a/vector/src/main/java/im/vector/app/features/settings/devices/v2/GetCurrentSessionCrossSigningInfoUseCase.kt b/vector/src/main/java/im/vector/app/features/settings/devices/v2/GetCurrentSessionCrossSigningInfoUseCase.kt
index 9f7a3d8208..63e647e7c2 100644
--- a/vector/src/main/java/im/vector/app/features/settings/devices/v2/GetCurrentSessionCrossSigningInfoUseCase.kt
+++ b/vector/src/main/java/im/vector/app/features/settings/devices/v2/GetCurrentSessionCrossSigningInfoUseCase.kt
@@ -26,7 +26,6 @@ import org.matrix.android.sdk.api.util.Optional
 import org.matrix.android.sdk.flow.flow
 import javax.inject.Inject
 
-// TODO add unit tests
 class GetCurrentSessionCrossSigningInfoUseCase @Inject constructor(
         private val activeSessionHolder: ActiveSessionHolder,
 ) {
diff --git a/vector/src/test/java/im/vector/app/features/settings/devices/v2/GetCurrentSessionCrossSigningInfoUseCaseTest.kt b/vector/src/test/java/im/vector/app/features/settings/devices/v2/GetCurrentSessionCrossSigningInfoUseCaseTest.kt
new file mode 100644
index 0000000000..178f388c7f
--- /dev/null
+++ b/vector/src/test/java/im/vector/app/features/settings/devices/v2/GetCurrentSessionCrossSigningInfoUseCaseTest.kt
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2022 New Vector Ltd
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package im.vector.app.features.settings.devices.v2
+
+import im.vector.app.test.fakes.FakeActiveSessionHolder
+import im.vector.app.test.test
+import im.vector.app.test.testDispatcher
+import io.mockk.every
+import io.mockk.mockk
+import io.mockk.mockkStatic
+import io.mockk.unmockkAll
+import io.mockk.verify
+import kotlinx.coroutines.flow.flowOf
+import kotlinx.coroutines.test.runTest
+import org.junit.After
+import org.junit.Before
+import org.junit.Test
+import org.matrix.android.sdk.api.auth.data.SessionParams
+import org.matrix.android.sdk.api.session.Session
+import org.matrix.android.sdk.api.session.crypto.crosssigning.MXCrossSigningInfo
+import org.matrix.android.sdk.api.util.toOptional
+import org.matrix.android.sdk.flow.FlowSession
+import org.matrix.android.sdk.flow.flow
+
+private const val A_DEVICE_ID = "device-id"
+
+class GetCurrentSessionCrossSigningInfoUseCaseTest {
+
+    private val fakeActiveSessionHolder = FakeActiveSessionHolder()
+
+    private val getCurrentSessionCrossSigningInfoUseCase = GetCurrentSessionCrossSigningInfoUseCase(
+            activeSessionHolder = fakeActiveSessionHolder.instance
+    )
+
+    @Before
+    fun setUp() {
+        mockkStatic("org.matrix.android.sdk.flow.FlowSessionKt")
+    }
+
+    @After
+    fun tearDown() {
+        unmockkAll()
+    }
+
+    @Test
+    fun `given the active session and existing cross signing info when getting these info then the result is correct`() = runTest(testDispatcher) {
+        val fakeSession = givenSession(A_DEVICE_ID)
+        val fakeFlowSession = givenFlowSession(fakeSession)
+        val isCrossSigningVerified = true
+        val mxCrossSigningInfo = givenMxCrossSigningInfo(isCrossSigningVerified)
+        every { fakeFlowSession.liveCrossSigningInfo(any()) } returns flowOf(mxCrossSigningInfo.toOptional())
+        val expectedResult = CurrentSessionCrossSigningInfo(
+                deviceId = A_DEVICE_ID,
+                isCrossSigningInitialized = true,
+                isCrossSigningVerified = isCrossSigningVerified
+        )
+
+        val result = getCurrentSessionCrossSigningInfoUseCase.execute()
+                .test(this)
+
+        result.assertValues(listOf(expectedResult))
+                .finish()
+        verify { fakeFlowSession.liveCrossSigningInfo(fakeSession.myUserId) }
+    }
+
+    @Test
+    fun `given the active session and no existing cross signing info when getting these info then the result is correct`() = runTest(testDispatcher) {
+        val fakeSession = givenSession(A_DEVICE_ID)
+        val fakeFlowSession = givenFlowSession(fakeSession)
+        val mxCrossSigningInfo = null
+        every { fakeFlowSession.liveCrossSigningInfo(any()) } returns flowOf(mxCrossSigningInfo.toOptional())
+        val expectedResult = CurrentSessionCrossSigningInfo(
+                deviceId = A_DEVICE_ID,
+                isCrossSigningInitialized = false,
+                isCrossSigningVerified = false
+        )
+
+        val result = getCurrentSessionCrossSigningInfoUseCase.execute()
+                .test(this)
+
+        result.assertValues(listOf(expectedResult))
+                .finish()
+        verify { fakeFlowSession.liveCrossSigningInfo(fakeSession.myUserId) }
+    }
+
+    @Test
+    fun `given no active session when getting cross signing info then the result is empty`() = runTest(testDispatcher) {
+        fakeActiveSessionHolder.givenGetSafeActiveSessionReturns(null)
+
+        val result = getCurrentSessionCrossSigningInfoUseCase.execute()
+                .test(this)
+
+        result.assertNoValues()
+                .finish()
+    }
+
+    private fun givenSession(deviceId: String): Session {
+        val sessionParams = mockk<SessionParams>()
+        every { sessionParams.deviceId } returns deviceId
+
+        val fakeSession = fakeActiveSessionHolder.fakeSession
+        fakeSession.givenSessionParams(sessionParams)
+
+        return fakeSession
+    }
+
+    private fun givenFlowSession(session: Session): FlowSession {
+        val fakeFlowSession = mockk<FlowSession>()
+        every { session.flow() } returns fakeFlowSession
+        return fakeFlowSession
+    }
+
+    private fun givenMxCrossSigningInfo(isTrusted: Boolean) = mockk<MXCrossSigningInfo>()
+            .also {
+                every { it.isTrusted() } returns isTrusted
+            }
+}