From ef03b9a6464722caa2aad7c81e697fd04f6f432a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Sebastian=20K=C3=BCrten?= <sebastian@mobanisto.de>
Date: Mon, 8 Nov 2021 07:54:54 +0100
Subject: [PATCH] Make contact exchange in testing less manual

---
 .../briar/desktop/BriarDesktopTestApp.kt           |  3 +++
 .../org/briarproject/briar/desktop/TestUtils.kt    | 14 ++++++++++++++
 .../TestWithTwoConnectedTemporaryAccounts.kt       |  7 +++----
 3 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/test/kotlin/org/briarproject/briar/desktop/BriarDesktopTestApp.kt b/src/test/kotlin/org/briarproject/briar/desktop/BriarDesktopTestApp.kt
index 775f69eaed..1306fdcf55 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/BriarDesktopTestApp.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/BriarDesktopTestApp.kt
@@ -5,6 +5,7 @@ import org.briarproject.bramble.BrambleCoreEagerSingletons
 import org.briarproject.bramble.BrambleCoreModule
 import org.briarproject.bramble.api.account.AccountManager
 import org.briarproject.bramble.api.contact.ContactManager
+import org.briarproject.bramble.api.identity.IdentityManager
 import org.briarproject.bramble.api.lifecycle.LifecycleManager
 import org.briarproject.bramble.api.lifecycle.ShutdownManager
 import org.briarproject.briar.BriarCoreEagerSingletons
@@ -27,6 +28,8 @@ internal interface BriarDesktopTestApp : BrambleCoreEagerSingletons, BriarCoreEa
 
     fun getBriarUi(): BriarUi
 
+    fun getIdentityManager(): IdentityManager
+
     fun getContactManager(): ContactManager
 
     fun getSecureRandom(): SecureRandom
diff --git a/src/test/kotlin/org/briarproject/briar/desktop/TestUtils.kt b/src/test/kotlin/org/briarproject/briar/desktop/TestUtils.kt
index c241e8e7a0..fb6ef1ad11 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/TestUtils.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/TestUtils.kt
@@ -18,4 +18,18 @@ object TestUtils {
         FileUtils.setRWX(dataDir)
         return dataDir
     }
+
+    internal fun List<BriarDesktopTestApp>.connectAll() {
+        forEachIndexed { i, app1 ->
+            forEachIndexed inner@{ k, app2 ->
+                if (i >= k) return@inner
+                val cm1 = app1.getContactManager()
+                val cm2 = app2.getContactManager()
+                val name1 = app1.getIdentityManager().localAuthor.name
+                val name2 = app2.getIdentityManager().localAuthor.name
+                cm1.addPendingContact(cm2.handshakeLink, name2)
+                cm2.addPendingContact(cm1.handshakeLink, name1)
+            }
+        }
+    }
 }
diff --git a/src/test/kotlin/org/briarproject/briar/desktop/TestWithTwoConnectedTemporaryAccounts.kt b/src/test/kotlin/org/briarproject/briar/desktop/TestWithTwoConnectedTemporaryAccounts.kt
index cf780483d1..13257a39f4 100644
--- a/src/test/kotlin/org/briarproject/briar/desktop/TestWithTwoConnectedTemporaryAccounts.kt
+++ b/src/test/kotlin/org/briarproject/briar/desktop/TestWithTwoConnectedTemporaryAccounts.kt
@@ -1,11 +1,10 @@
 package org.briarproject.briar.desktop
 
+import org.briarproject.briar.desktop.TestUtils.connectAll
+
 fun main() = RunWithMultipleTemporaryAccounts(listOf("alice", "bob")) {
     forEach {
         it.getDeterministicTestDataCreator().createTestData(5, 20, 50)
     }
-    val app1 = get(0)
-    val app2 = get(1)
-    app1.getContactManager().addPendingContact(app2.getContactManager().handshakeLink, "bob")
-    app2.getContactManager().addPendingContact(app1.getContactManager().handshakeLink, "alice")
+    connectAll()
 }.run()
-- 
GitLab