Skip to content

Commit 340de79

Browse files
test: Improve SentryHttpStatusCodeRange tests
Add property verification, boundary, and edge case coverage for both initializers and isInRange. Adopt consistent naming convention. Agent transcript: https://claudescope.sentry.dev/share/YUPkoCiAV9s9UjZNW-4gf7hvftpvcCTL6bhgviKQb8U
1 parent 1364456 commit 340de79

File tree

1 file changed

+61
-24
lines changed

1 file changed

+61
-24
lines changed
Lines changed: 61 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,83 @@
11
import XCTest
22

33
class SentryHttpStatusCodeRangeTests: XCTestCase {
4-
5-
func testWithinRange() {
4+
5+
// MARK: - Init Properties
6+
7+
func testInit_whenMinAndMax_shouldSetProperties() {
8+
let range = HttpStatusCodeRange(min: 400, max: 499)
9+
10+
XCTAssertEqual(range.min, 400)
11+
XCTAssertEqual(range.max, 499)
12+
}
13+
14+
func testInit_whenStatusCode_shouldSetMinAndMaxEqual() {
15+
let range = HttpStatusCodeRange(statusCode: 500)
16+
17+
XCTAssertEqual(range.min, 500)
18+
XCTAssertEqual(range.max, 500)
19+
}
20+
21+
// MARK: - Range Init: isInRange
22+
23+
func testIsInRange_whenStatusCodeWithinRange_shouldReturnTrue() {
624
let range = HttpStatusCodeRange(min: 500, max: 599)
7-
25+
826
XCTAssertTrue(range.is(inRange: 550))
927
}
10-
11-
func testMinWithinRange() {
28+
29+
func testIsInRange_whenStatusCodeEqualsMin_shouldReturnTrue() {
1230
let range = HttpStatusCodeRange(min: 500, max: 599)
13-
31+
1432
XCTAssertTrue(range.is(inRange: 500))
1533
}
16-
17-
func testLowerMinNotWithinRange() {
34+
35+
func testIsInRange_whenStatusCodeEqualsMax_shouldReturnTrue() {
1836
let range = HttpStatusCodeRange(min: 500, max: 599)
19-
20-
XCTAssertFalse(range.is(inRange: 499))
37+
38+
XCTAssertTrue(range.is(inRange: 599))
2139
}
22-
23-
func testMaxWithinRange() {
40+
41+
func testIsInRange_whenStatusCodeBelowMin_shouldReturnFalse() {
2442
let range = HttpStatusCodeRange(min: 500, max: 599)
25-
26-
XCTAssertTrue(range.is(inRange: 599))
43+
44+
XCTAssertFalse(range.is(inRange: 499))
2745
}
28-
29-
func testHigherMaxNotWithinRange() {
46+
47+
func testIsInRange_whenStatusCodeAboveMax_shouldReturnFalse() {
3048
let range = HttpStatusCodeRange(min: 500, max: 599)
31-
49+
3250
XCTAssertFalse(range.is(inRange: 600))
3351
}
34-
35-
func testStatusCodeWithinRange() {
52+
53+
func testIsInRange_whenMinEqualsMax_shouldMatchOnlyThatCode() {
54+
let range = HttpStatusCodeRange(min: 500, max: 500)
55+
56+
XCTAssertTrue(range.is(inRange: 500))
57+
XCTAssertFalse(range.is(inRange: 499))
58+
XCTAssertFalse(range.is(inRange: 501))
59+
}
60+
61+
// The init does not validate min <= max, so an inverted range matches nothing.
62+
func testIsInRange_whenMinGreaterThanMax_shouldAlwaysReturnFalse() {
63+
let range = HttpStatusCodeRange(min: 599, max: 500)
64+
65+
XCTAssertFalse(range.is(inRange: 500))
66+
XCTAssertFalse(range.is(inRange: 550))
67+
XCTAssertFalse(range.is(inRange: 599))
68+
}
69+
70+
// MARK: - StatusCode Init: isInRange
71+
72+
func testIsInRange_whenStatusCodeInitAndExactMatch_shouldReturnTrue() {
3673
let range = HttpStatusCodeRange(statusCode: 500)
37-
74+
3875
XCTAssertTrue(range.is(inRange: 500))
3976
}
40-
41-
func testStatusCodeNotWithinRange() {
77+
78+
func testIsInRange_whenStatusCodeInitAndDifferentCode_shouldReturnFalse() {
4279
let range = HttpStatusCodeRange(statusCode: 500)
43-
44-
XCTAssertFalse(range.is(inRange: 200))
80+
81+
XCTAssertFalse(range.is(inRange: 501))
4582
}
4683
}

0 commit comments

Comments
 (0)