Skip to content

Commit 7c590ed

Browse files
Backport of #2050
Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
1 parent 8c8bc09 commit 7c590ed

2 files changed

Lines changed: 97 additions & 9 deletions

File tree

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,33 @@
11
/*
22
* Nextcloud Android Library
33
*
4-
* SPDX-FileCopyrightText: 2023-2024 Nextcloud GmbH and Nextcloud contributors
4+
* SPDX-FileCopyrightText: 2023-2026 Nextcloud GmbH and Nextcloud contributors
5+
* SPDX-FileCopyrightText: 2026 Alper Ozturk <alper.ozturk@nextcloud.com>
56
* SPDX-FileCopyrightText: 2023 Tobias Kaminsky <tobias@kaminsky.me>
67
* SPDX-License-Identifier: MIT
78
*/
89
package com.owncloud.android.lib.resources.status
910

1011
enum class E2EVersion(
11-
val value: String
12+
val values: List<String>
1213
) {
13-
V1_0("1.0"),
14-
V1_1("1.1"),
15-
V1_2("1.2"),
16-
V2_0("2.0"),
17-
V2_1("2.1"),
18-
UNKNOWN("");
14+
V1_0(listOf("1", "1.0")),
15+
V1_1(listOf("1.1")),
16+
V1_2(listOf("1.2")),
17+
V2_0(listOf("2", "2.0")),
18+
V2_1(listOf("2.1")),
19+
UNKNOWN(listOf(""));
20+
21+
val value: String = values.last()
22+
23+
var unknownValue: String? = null
1924

2025
companion object {
26+
fun max(): E2EVersion = V2_1
27+
2128
@JvmStatic
22-
fun fromValue(v: String): E2EVersion = entries.firstOrNull { it.value == v } ?: UNKNOWN
29+
fun fromValue(v: String?): E2EVersion =
30+
entries.find { v in it.values }
31+
?: UNKNOWN.also { it.unknownValue = v }
2332
}
2433
}
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
/*
2+
* Nextcloud Android Library
3+
*
4+
* SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors
5+
* SPDX-License-Identifier: MIT
6+
*/
7+
package com.owncloud.android.lib.resources.status
8+
9+
import org.junit.Assert.assertEquals
10+
import org.junit.Test
11+
12+
class E2EVersionTests {
13+
@Test
14+
fun testFromValueWhenGiven1ShouldReturnTrue() {
15+
assertEquals(E2EVersion.V1_0, E2EVersion.fromValue("1"))
16+
}
17+
18+
@Test
19+
fun testFromValueWhenGiven1Dot0ShouldReturnTrue() {
20+
assertEquals(E2EVersion.V1_0, E2EVersion.fromValue("1.0"))
21+
}
22+
23+
@Test
24+
fun testFromValueWhenGiven1Dot1ShouldReturnTrue() {
25+
assertEquals(E2EVersion.V1_1, E2EVersion.fromValue("1.1"))
26+
}
27+
28+
@Test
29+
fun testFromValueWhenGiven1Dot2ShouldReturnTrue() {
30+
assertEquals(E2EVersion.V1_2, E2EVersion.fromValue("1.2"))
31+
}
32+
33+
@Test
34+
fun testFromValueWhenGiven2ShouldReturnTrue() {
35+
assertEquals(E2EVersion.V2_0, E2EVersion.fromValue("2"))
36+
}
37+
38+
@Test
39+
fun testFromValueWhenGiven2Dot0ShouldReturnTrue() {
40+
assertEquals(E2EVersion.V2_0, E2EVersion.fromValue("2.0"))
41+
}
42+
43+
@Test
44+
fun testFromValueWhenGiven2Dot1ShouldReturnTrue() {
45+
assertEquals(E2EVersion.V2_1, E2EVersion.fromValue("2.1"))
46+
}
47+
48+
@Test
49+
fun testFromValueWhenGivenEmptyShouldReturnTrue() {
50+
assertEquals(E2EVersion.UNKNOWN, E2EVersion.fromValue(""))
51+
}
52+
53+
@Test
54+
fun testFromValueWhenGivenUnknownShouldReturnTrue() {
55+
assertEquals(E2EVersion.UNKNOWN, E2EVersion.fromValue("3"))
56+
}
57+
58+
@Test
59+
fun testFromValueWhenGivenNullShouldReturnTrue() {
60+
assertEquals(E2EVersion.UNKNOWN, E2EVersion.fromValue(null))
61+
}
62+
63+
@Test
64+
fun testFromValueWhenGiven3Dot0ShouldReturnTrue() {
65+
val version = E2EVersion.fromValue("3.0")
66+
assertEquals(E2EVersion.UNKNOWN, version)
67+
assertEquals("3.0", version.unknownValue)
68+
}
69+
70+
@Test
71+
fun testValues() {
72+
assertEquals(E2EVersion.V1_0.value, "1.0")
73+
assertEquals(E2EVersion.V1_1.value, "1.1")
74+
assertEquals(E2EVersion.V1_2.value, "1.2")
75+
assertEquals(E2EVersion.V2_0.value, "2.0")
76+
assertEquals(E2EVersion.V2_1.value, "2.1")
77+
assertEquals(E2EVersion.UNKNOWN.value, "")
78+
}
79+
}

0 commit comments

Comments
 (0)