1
+ package com.baeldung.enumValueContainsString
2
+
3
+ import org.junit.jupiter.api.Assertions.assertFalse
4
+ import org.junit.jupiter.api.Assertions.assertTrue
5
+ import org.junit.jupiter.api.Test
6
+
7
+ class EnumValueContainsStringUnitTest {
8
+
9
+ @Test
10
+ fun `checks if enum value contains a specific string correctly using for loop` () {
11
+ assertFalse(containsValueUsingForLoop(" RED" ))
12
+ assertTrue(containsValueUsingForLoop(" WEDNESDAY" ))
13
+ assertFalse(containsValueUsingForLoop(" AUGUST" ))
14
+ assertTrue(containsValueUsingForLoop(" SATURDAY" ))
15
+ }
16
+
17
+ @Test
18
+ fun `checks if enum value contains a specific string correctly using when expression` () {
19
+ assertFalse(containsValueUsingWhenExpression(" RED" ))
20
+ assertTrue(containsValueUsingWhenExpression(" WEDNESDAY" ))
21
+ assertFalse(containsValueUsingWhenExpression(" AUGUST" ))
22
+ assertTrue(containsValueUsingWhenExpression(" SATURDAY" ))
23
+ }
24
+
25
+ @Test
26
+ fun `checks if enum value contains a specific string correctly using any method` () {
27
+ val names = DaysOfWeek .values()
28
+
29
+ assertFalse(names.any { it.name == " RED" })
30
+ assertTrue(names.any { it.name == " WEDNESDAY" })
31
+ assertFalse(names.any { it.name == " AUGUST" })
32
+ assertTrue(names.any { it.name == " SATURDAY" })
33
+ }
34
+
35
+ @Test
36
+ fun `checks if enum value contains a specific string correctly using map method` () {
37
+ val names = DaysOfWeek .values().map { it.name}
38
+
39
+ assertFalse(names.contains(" RED" ))
40
+ assertTrue(names.contains(" WEDNESDAY" ))
41
+ assertFalse(names.contains(" AUGUST" ))
42
+ assertTrue(names.contains(" SATURDAY" ))
43
+ }
44
+
45
+ @Test
46
+ fun `checks if enum value contains a specific string correctly using a hashset` () {
47
+ assertFalse(containsValueUsingHashSet(" RED" ))
48
+ assertTrue(containsValueUsingHashSet(" WEDNESDAY" ))
49
+ assertFalse(containsValueUsingHashSet(" AUGUST" ))
50
+ assertTrue(containsValueUsingHashSet(" SATURDAY" ))
51
+ }
52
+
53
+ }
54
+ enum class DaysOfWeek {
55
+ MONDAY , TUESDAY , WEDNESDAY , THURSDAY , FRIDAY , SATURDAY , SUNDAY ;
56
+
57
+ companion object {
58
+ // generate names once.
59
+ val names by lazy { DaysOfWeek .values().map{ it.name } }
60
+ }
61
+ }
62
+
63
+
64
+ fun containsValueUsingForLoop (value : String ): Boolean {
65
+ for (day in DaysOfWeek .values()) {
66
+ if (day.name == value) {
67
+ return true
68
+ }
69
+ }
70
+ return false
71
+ }
72
+
73
+ fun containsValueUsingWhenExpression (value : String ): Boolean {
74
+ return when (value) {
75
+ in DaysOfWeek .names -> true
76
+ else -> false
77
+ }
78
+ }
79
+
80
+ fun containsValueUsingHashSet (value : String ): Boolean {
81
+ val set = HashSet <String >()
82
+ DaysOfWeek .values().forEach { set.add(it.name) }
83
+ return set.contains(value)
84
+ }
0 commit comments