Skip to content

Commit 252d815

Browse files
committed
Added new test cases to StableMetricDataTests
Signed-off-by: Kevin Earls <[email protected]>
1 parent 2fead12 commit 252d815

File tree

1 file changed

+110
-13
lines changed

1 file changed

+110
-13
lines changed

Tests/OpenTelemetrySdkTests/Metrics/StableMetrics/Data/StableMetricDataTests.swift

Lines changed: 110 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -8,27 +8,124 @@ import OpenTelemetryApi
88
import XCTest
99

1010
class StableMetricDataTests: XCTestCase {
11+
let resource = Resource(attributes: ["foo": AttributeValue("bar")])
12+
let instrumentationScopeInfo = InstrumentationScopeInfo(name: "test")
13+
let metricName = "name"
14+
let metricDescription = "description"
15+
let emptyPointData = [PointData]()
16+
let unit = "unit"
17+
1118
func testStableMetricDataCreation() {
12-
let resource = Resource(attributes: ["foo": AttributeValue("bar")])
13-
let instrumentationScopeInfo = InstrumentationScopeInfo(name: "test")
14-
let name = "name"
15-
let description = "description"
16-
let unit = "unit"
1719
let type = MetricDataType.Summary
18-
let data = StableMetricData.Data(points: [PointData]())
20+
let data = StableMetricData.Data(points: emptyPointData)
1921

20-
let metricData = StableMetricData(resource: resource, instrumentationScopeInfo: instrumentationScopeInfo, name: name, description: description, unit: unit, type: type, data: data)
21-
22-
XCTAssertEqual(metricData.resource, resource)
23-
XCTAssertEqual(metricData.instrumentationScopeInfo, instrumentationScopeInfo)
24-
XCTAssertEqual(metricData.name, name)
25-
XCTAssertEqual(metricData.description, description)
26-
XCTAssertEqual(metricData.unit, unit)
22+
let metricData = StableMetricData(resource: resource, instrumentationScopeInfo: instrumentationScopeInfo, name: metricName, description: metricDescription, unit: unit, type: type, data: data)
23+
24+
assertCommon(metricData)
2725
XCTAssertEqual(metricData.type, type)
2826
XCTAssertEqual(metricData.data, data)
2927
}
3028

3129
func testEmptyStableMetricData() {
3230
XCTAssertEqual(StableMetricData.empty, StableMetricData(resource: Resource.empty, instrumentationScopeInfo: InstrumentationScopeInfo(), name: "", description: "", unit: "", type: .Summary, data: StableMetricData.Data(points: [PointData]())))
3331
}
32+
33+
func testCreateExponentialHistogram() {
34+
let type = MetricDataType.ExponentialHistogram
35+
let histogramData = StableExponentialHistogramData(aggregationTemporality: .delta, points: emptyPointData)
36+
37+
let metricData = StableMetricData.createExponentialHistogram(resource: resource, instrumentationScopeInfo: instrumentationScopeInfo, name: metricName, description: metricDescription, unit: unit, data: histogramData)
38+
39+
assertCommon(metricData)
40+
XCTAssertEqual(metricData.type, type)
41+
XCTAssertEqual(metricData.data, histogramData)
42+
}
43+
44+
func testCreateHistogram() {
45+
let type = MetricDataType.Histogram
46+
47+
let boundaries = [Double]()
48+
let sum:Double = 0
49+
let min = Double.greatestFiniteMagnitude
50+
let max:Double = -1
51+
let count = 0
52+
let counts = Array(repeating: 0, count: boundaries.count + 1)
53+
54+
let histogramPointData = HistogramPointData(startEpochNanos: 0, endEpochNanos: 1, attributes: [:], exemplars: [ExemplarData](), sum: sum, count: UInt64(count), min: min, max: max, boundaries: boundaries, counts: counts, hasMin: count > 0, hasMax: count > 0)
55+
56+
let points = [histogramPointData]
57+
let histogramData = StableHistogramData(aggregationTemporality: .cumulative, points: points)
58+
let metricData = StableMetricData.createHistogram(resource: resource, instrumentationScopeInfo: instrumentationScopeInfo, name: metricName, description: metricDescription, unit: unit, data: histogramData)
59+
60+
assertCommon(metricData)
61+
XCTAssertEqual(metricData.type, type)
62+
XCTAssertEqual(metricData.data, histogramData)
63+
64+
XCTAssertFalse(metricData.isEmpty())
65+
66+
let hpd = metricData.getHistogramData()
67+
XCTAssertNotNil(hpd)
68+
XCTAssertEqual(1, hpd.count)
69+
}
70+
71+
func testCreateDoubleGuage() {
72+
let type = MetricDataType.DoubleGauge
73+
let d: Double = 22.22222
74+
75+
let point:PointData = DoublePointData(startEpochNanos: 0, endEpochNanos: 1, attributes: [:], exemplars: [], value: d)
76+
let guageData = StableGaugeData(aggregationTemporality: .cumulative, points: [point])
77+
let metricData = StableMetricData.createDoubleGauge(resource: resource, instrumentationScopeInfo: instrumentationScopeInfo, name: metricName, description: metricDescription, unit: unit, data: guageData)
78+
79+
assertCommon(metricData)
80+
XCTAssertEqual(metricData.type, type)
81+
XCTAssertEqual(metricData.data.points.first, point)
82+
}
83+
84+
func testCreateDoubleSum() {
85+
let type = MetricDataType.DoubleSum
86+
let d: Double = 44.4444
87+
88+
let point:PointData = DoublePointData(startEpochNanos: 0, endEpochNanos: 1, attributes: [:], exemplars: [], value: d)
89+
let sumData = StableSumData(aggregationTemporality: .cumulative, points: [point])
90+
let metricData = StableMetricData.createDoubleSum(resource: resource, instrumentationScopeInfo: instrumentationScopeInfo, name: metricName, description: metricDescription, unit: unit, data: sumData)
91+
92+
assertCommon(metricData)
93+
XCTAssertEqual(metricData.type, type)
94+
XCTAssertEqual(metricData.data.points.first, point)
95+
}
96+
97+
func testCreateLongGuage() {
98+
let type = MetricDataType.LongGauge
99+
let point:PointData = LongPointData(startEpochNanos: 0, endEpochNanos: 1, attributes: [:], exemplars: [], value: 33)
100+
let guageData = StableGaugeData(aggregationTemporality: .cumulative, points: [point])
101+
102+
let metricData = StableMetricData.createLongGauge(resource: resource, instrumentationScopeInfo: instrumentationScopeInfo, name: metricName, description: metricDescription, unit: unit, data: guageData)
103+
104+
assertCommon(metricData)
105+
XCTAssertEqual(metricData.type, type)
106+
XCTAssertEqual(metricData.data.points.first, point)
107+
}
108+
109+
func testCreateLongSum() {
110+
let type = MetricDataType.LongSum
111+
let point:PointData = LongPointData(startEpochNanos: 0, endEpochNanos: 1, attributes: [:], exemplars: [], value: 55)
112+
let sumData = StableSumData(aggregationTemporality: .cumulative, points: [point])
113+
114+
let metricData = StableMetricData.createLongSum(resource: resource, instrumentationScopeInfo: instrumentationScopeInfo, name: metricName, description: metricDescription, unit: unit, data: sumData)
115+
116+
assertCommon(metricData)
117+
XCTAssertEqual(metricData.type, type)
118+
XCTAssertEqual(metricData.data.points.first, point)
119+
}
120+
121+
122+
123+
124+
func assertCommon(_ metricData: StableMetricData) {
125+
XCTAssertEqual(metricData.resource, resource)
126+
XCTAssertEqual(metricData.instrumentationScopeInfo, instrumentationScopeInfo)
127+
XCTAssertEqual(metricData.name, metricName)
128+
XCTAssertEqual(metricData.description, metricDescription)
129+
XCTAssertEqual(metricData.unit, unit)
130+
}
34131
}

0 commit comments

Comments
 (0)