From 67fd528dff6a703a91f303870dd345b3bdce5443 Mon Sep 17 00:00:00 2001
From: Matthias Urhahn <matthias.urhahn@sap.com>
Date: Thu, 27 May 2021 14:37:50 +0200
Subject: [PATCH] Add valueset storage tests (DEV) (#3298)

* Add tests for valueset storage format.

* Remove extra case and add check for reloading.
---
 .../storage/ValueSetsStorageTest.kt           | 63 +++++++++++++++++++
 1 file changed, 63 insertions(+)

diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/repository/storage/ValueSetsStorageTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/repository/storage/ValueSetsStorageTest.kt
index e79a54c44..8b68c38cc 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/repository/storage/ValueSetsStorageTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/vaccination/core/repository/storage/ValueSetsStorageTest.kt
@@ -10,12 +10,14 @@ import de.rki.coronawarnapp.vaccination.core.ValueSetTestData.valueSetDe
 import de.rki.coronawarnapp.vaccination.core.ValueSetTestData.valueSetEn
 import de.rki.coronawarnapp.vaccination.core.validateValues
 import io.kotest.matchers.shouldBe
+import io.kotest.matchers.shouldNotBe
 import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
 import testhelpers.BaseTest
+import testhelpers.extensions.toComparableJsonPretty
 import testhelpers.preferences.MockSharedPreferences
 
 class ValueSetsStorageTest : BaseTest() {
@@ -76,4 +78,65 @@ class ValueSetsStorageTest : BaseTest() {
             }
         }
     }
+
+    @Test
+    fun `storage inits empty without sideeffects`() {
+        createInstance().vaccinationValueSet shouldNotBe null
+        prefs.dataMapPeek.isEmpty() shouldBe true
+    }
+
+    @Test
+    fun `storage format`() {
+        createInstance().vaccinationValueSet = storedValueSetDe
+        (prefs.dataMapPeek["valueset"] as String).toComparableJsonPretty() shouldBe """
+            {
+              "languageCode": "de",
+              "vp": {
+                "items": [
+                  {
+                    "key": "1119305005",
+                    "displayText": "Impfstoff-Name"
+                  }
+                ]
+              },
+              "mp": {
+                "items": [
+                  {
+                    "key": "EU/1/21/1529",
+                    "displayText": "Arzneimittel-Name"
+                  }
+                ]
+              },
+              "ma": {
+                "items": [
+                  {
+                    "key": "ORG-100001699",
+                    "displayText": "Hersteller-Name"
+                  }
+                ]
+              }
+            }
+        """.toComparableJsonPretty()
+
+        createInstance().apply {
+            vaccinationValueSet shouldBe storedValueSetDe
+            vaccinationValueSet = emptyStoredValueSet
+        }
+        (prefs.dataMapPeek["valueset"] as String).toComparableJsonPretty() shouldBe """
+            {
+              "languageCode": "en",
+              "vp": {
+                "items": []
+              },
+              "mp": {
+                "items": []
+              },
+              "ma": {
+                "items": []
+              }
+            }
+        """.toComparableJsonPretty()
+
+        createInstance().vaccinationValueSet shouldBe emptyStoredValueSet
+    }
 }
-- 
GitLab