generated from amazon-archives/__template_Apache-2.0
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathAwsOpenTelemetryConfigTests.swift
More file actions
122 lines (106 loc) · 4.1 KB
/
AwsOpenTelemetryConfigTests.swift
File metadata and controls
122 lines (106 loc) · 4.1 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
import XCTest
@testable import AwsOpenTelemetryCore
final class AwsOpenTelemetryConfigTests: XCTestCase {
// Define test values
let version = "1.0.0"
let region = "us-west-2"
let appMonitorId = "test-monitor-id"
let appVersion = "1.2.3"
let logsEndpoint = "https://custom-logs.example.com"
let tracesEndpoint = "https://custom-traces.example.com"
let tracesOnlyEndpoint = "https://traces-only.example.com"
let debug = true
let defaultVersion = "1.0.0"
let alias = "test-alias"
func testConfigInitialization() {
// Test basic initialization
let config = AwsOpenTelemetryConfig(
version: version,
rum: RumConfig(region: region, appMonitorId: appMonitorId),
application: ApplicationConfig(applicationVersion: appVersion)
)
XCTAssertEqual(config.version, version)
XCTAssertEqual(config.rum.region, region)
XCTAssertEqual(config.rum.appMonitorId, appMonitorId)
XCTAssertNil(config.rum.overrideEndpoint)
XCTAssertNil(config.rum.alias)
XCTAssertEqual(config.rum.debug, false)
XCTAssertEqual(config.application.applicationVersion, appVersion)
}
func testConfigWithOptionalFields() {
// Test initialization with all optional fields
let endpointOverrides = EndpointOverrides(
logs: logsEndpoint,
traces: tracesEndpoint
)
let config = AwsOpenTelemetryConfig(
version: version,
rum: RumConfig(
region: region,
appMonitorId: appMonitorId,
overrideEndpoint: endpointOverrides,
debug: debug,
alias: alias
),
application: ApplicationConfig(applicationVersion: appVersion)
)
XCTAssertEqual(config.version, version)
XCTAssertEqual(config.rum.region, region)
XCTAssertEqual(config.rum.appMonitorId, appMonitorId)
XCTAssertNotNil(config.rum.overrideEndpoint)
XCTAssertNotNil(config.rum.alias)
XCTAssertEqual(config.rum.overrideEndpoint?.logs, logsEndpoint)
XCTAssertEqual(config.rum.overrideEndpoint?.traces, tracesEndpoint)
XCTAssertEqual(config.rum.alias, alias)
XCTAssertEqual(config.rum.debug, debug)
XCTAssertEqual(config.application.applicationVersion, appVersion)
}
func testDefaultVersionValue() {
// Test that version defaults to "1.0.0" when not provided
let config = AwsOpenTelemetryConfig(
rum: RumConfig(region: region, appMonitorId: appMonitorId),
application: ApplicationConfig(applicationVersion: appVersion)
)
XCTAssertEqual(config.version, defaultVersion)
}
func testEndpointOverridesInitialization() {
// Test EndpointOverrides initialization
let overrides = EndpointOverrides(logs: logsEndpoint, traces: tracesEndpoint)
XCTAssertEqual(overrides.logs, logsEndpoint)
XCTAssertEqual(overrides.traces, tracesEndpoint)
// Test with nil values
let partialOverrides = EndpointOverrides(logs: nil, traces: tracesOnlyEndpoint)
XCTAssertNil(partialOverrides.logs)
XCTAssertEqual(partialOverrides.traces, tracesOnlyEndpoint)
}
func testCodable() throws {
// Create a config
let originalConfig = AwsOpenTelemetryConfig(
version: version,
rum: RumConfig(
region: region,
appMonitorId: appMonitorId,
overrideEndpoint: EndpointOverrides(
logs: logsEndpoint,
traces: tracesEndpoint
),
debug: debug
),
application: ApplicationConfig(applicationVersion: appVersion)
)
// Encode to JSON
let encoder = JSONEncoder()
let jsonData = try encoder.encode(originalConfig)
// Decode back
let decoder = JSONDecoder()
let decodedConfig = try decoder.decode(AwsOpenTelemetryConfig.self, from: jsonData)
// Verify all properties match
XCTAssertEqual(decodedConfig.version, version)
XCTAssertEqual(decodedConfig.rum.region, region)
XCTAssertEqual(decodedConfig.rum.appMonitorId, appMonitorId)
XCTAssertEqual(decodedConfig.rum.overrideEndpoint?.logs, logsEndpoint)
XCTAssertEqual(decodedConfig.rum.overrideEndpoint?.traces, tracesEndpoint)
XCTAssertEqual(decodedConfig.rum.debug, debug)
XCTAssertEqual(decodedConfig.application.applicationVersion, appVersion)
}
}