-
-
Notifications
You must be signed in to change notification settings - Fork 468
Expand file tree
/
Copy pathDebugMetaPropertiesApplierTest.kt
More file actions
141 lines (111 loc) · 5.47 KB
/
DebugMetaPropertiesApplierTest.kt
File metadata and controls
141 lines (111 loc) · 5.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
package io.sentry.util
import io.sentry.SentryOptions
import java.util.Properties
import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertNull
class DebugMetaPropertiesApplierTest {
@Test
fun `applies distribution options from properties`() {
val properties = Properties()
properties.setProperty("io.sentry.distribution.org-slug", "test-org")
properties.setProperty("io.sentry.distribution.project-slug", "test-project")
properties.setProperty("io.sentry.distribution.auth-token", "test-token")
properties.setProperty("io.sentry.distribution.build-configuration", "debug")
val options = SentryOptions()
DebugMetaPropertiesApplier.apply(options, listOf(properties))
assertEquals("test-org", options.distribution.orgSlug)
assertEquals("test-project", options.distribution.projectSlug)
assertEquals("test-token", options.distribution.orgAuthToken)
assertEquals("debug", options.distribution.buildConfiguration)
}
@Test
fun `applies partial distribution options from properties`() {
val properties = Properties()
properties.setProperty("io.sentry.distribution.org-slug", "test-org")
properties.setProperty("io.sentry.distribution.project-slug", "test-project")
val options = SentryOptions()
DebugMetaPropertiesApplier.apply(options, listOf(properties))
assertEquals("test-org", options.distribution.orgSlug)
assertEquals("test-project", options.distribution.projectSlug)
assertEquals("", options.distribution.orgAuthToken)
assertNull(options.distribution.buildConfiguration)
}
@Test
fun `does not override existing distribution options`() {
val properties = Properties()
properties.setProperty("io.sentry.distribution.org-slug", "properties-org")
properties.setProperty("io.sentry.distribution.project-slug", "properties-project")
properties.setProperty("io.sentry.distribution.auth-token", "properties-token")
properties.setProperty("io.sentry.distribution.build-configuration", "properties-config")
val options = SentryOptions()
options.distribution.orgSlug = "existing-org"
options.distribution.projectSlug = "existing-project"
options.distribution.orgAuthToken = "existing-token"
options.distribution.buildConfiguration = "existing-config"
DebugMetaPropertiesApplier.apply(options, listOf(properties))
assertEquals("existing-org", options.distribution.orgSlug)
assertEquals("existing-project", options.distribution.projectSlug)
assertEquals("existing-token", options.distribution.orgAuthToken)
assertEquals("existing-config", options.distribution.buildConfiguration)
}
@Test
fun `applies distribution options from first properties file with values`() {
val properties1 = Properties()
val properties2 = Properties()
val properties3 = Properties()
// properties1 has non-distribution properties so is ignored:
properties1.setProperty("io.sentry.unrelated", "unrelated")
// properties2 should end up being the ones set
properties2.setProperty("io.sentry.distribution.project-slug", "project-from-second")
// properties3 also has distribution properties but since properties2 was first they are
// ignored.
properties3.setProperty("io.sentry.distribution.project-slug", "project-from-third")
val options = SentryOptions()
DebugMetaPropertiesApplier.apply(options, listOf(properties1, properties2, properties3))
assertEquals("project-from-second", options.distribution.projectSlug)
}
@Test
fun `does nothing when properties list is empty`() {
val options = SentryOptions()
val originalOrgSlug = options.distribution.orgSlug
val originalProjectSlug = options.distribution.projectSlug
DebugMetaPropertiesApplier.apply(options, emptyList())
assertEquals(originalOrgSlug, options.distribution.orgSlug)
assertEquals(originalProjectSlug, options.distribution.projectSlug)
}
@Test
fun `does nothing when properties list is null`() {
val options = SentryOptions()
val originalOrgSlug = options.distribution.orgSlug
val originalProjectSlug = options.distribution.projectSlug
DebugMetaPropertiesApplier.apply(options, null)
assertEquals(originalOrgSlug, options.distribution.orgSlug)
assertEquals(originalProjectSlug, options.distribution.projectSlug)
}
@Test
fun `applies buildConfiguration only when it is the only property set`() {
val properties = Properties()
properties.setProperty("io.sentry.distribution.build-configuration", "debug")
val options = SentryOptions()
DebugMetaPropertiesApplier.apply(options, listOf(properties))
assertEquals("debug", options.distribution.buildConfiguration)
assertEquals("", options.distribution.orgSlug)
assertEquals("", options.distribution.projectSlug)
assertEquals("", options.distribution.orgAuthToken)
}
@Test
fun `does not apply empty string values`() {
val properties = Properties()
properties.setProperty("io.sentry.distribution.org-slug", "")
properties.setProperty("io.sentry.distribution.project-slug", "")
properties.setProperty("io.sentry.distribution.auth-token", "")
properties.setProperty("io.sentry.distribution.build-configuration", "")
val options = SentryOptions()
DebugMetaPropertiesApplier.apply(options, listOf(properties))
assertEquals("", options.distribution.orgSlug)
assertEquals("", options.distribution.projectSlug)
assertEquals("", options.distribution.orgAuthToken)
assertNull(options.distribution.buildConfiguration)
}
}