summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/src/main/kotlin/TalerConfig.kt2
-rw-r--r--common/src/test/kotlin/ConfigTest.kt47
2 files changed, 48 insertions, 1 deletions
diff --git a/common/src/main/kotlin/TalerConfig.kt b/common/src/main/kotlin/TalerConfig.kt
index edcc2faa..c0148278 100644
--- a/common/src/main/kotlin/TalerConfig.kt
+++ b/common/src/main/kotlin/TalerConfig.kt
@@ -100,7 +100,7 @@ fun ConfigSource.fromFile(file: Path?): TalerConfig {
* @param configSource information about where to load configuration defaults from
*/
class TalerConfig internal constructor(
- val configSource: ConfigSource,
+ val configSource: ConfigSource
) {
private val sectionMap: MutableMap<String, Section> = mutableMapOf()
diff --git a/common/src/test/kotlin/ConfigTest.kt b/common/src/test/kotlin/ConfigTest.kt
new file mode 100644
index 00000000..cb573501
--- /dev/null
+++ b/common/src/test/kotlin/ConfigTest.kt
@@ -0,0 +1,47 @@
+/*
+ * This file is part of LibEuFin.
+ * Copyright (C) 2024 Taler Systems S.A.
+
+ * LibEuFin is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation; either version 3, or
+ * (at your option) any later version.
+
+ * LibEuFin is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General
+ * Public License for more details.
+
+ * You should have received a copy of the GNU Affero General Public
+ * License along with LibEuFin; see the file COPYING. If not, see
+ * <http://www.gnu.org/licenses/>
+ */
+
+import org.junit.Test
+import java.time.Duration
+import tech.libeufin.common.*
+import kotlin.test.*
+
+class ConfigTest {
+ @Test
+ fun timeParsing() {
+ fun parseTime(raw: String): Duration {
+ val cfg = TalerConfig(ConfigSource("test", "test", "test"))
+ cfg.loadFromMem("""
+ [test]
+ time = "$raw"
+ """, null)
+ return cfg.requireDuration("test", "time")
+ }
+ assertEquals(Duration.ofSeconds(1), parseTime("1s"))
+ assertEquals(parseTime("1 s"), parseTime("1s"))
+ assertEquals(Duration.ofMinutes(10), parseTime("10m"))
+ assertEquals(parseTime("10 m"), parseTime("10m"))
+ assertEquals(Duration.ofHours(1), parseTime("01h"))
+ assertEquals(
+ Duration.ofHours(1).plus(Duration.ofMinutes(10)).plus(Duration.ofSeconds(12)),
+ parseTime("1h10m12s")
+ )
+ assertEquals(parseTime("1h10m12s"), parseTime("1h10'12\""))
+ }
+} \ No newline at end of file