forked from realm/SwiftLint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathImplicitlyUnwrappedOptionalRuleTests.swift
31 lines (26 loc) · 1.18 KB
/
ImplicitlyUnwrappedOptionalRuleTests.swift
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
import Foundation
@testable import SwiftLintFramework
import XCTest
class ImplicitlyUnwrappedOptionalRuleTests: XCTestCase {
func testWithDefaultConfiguration() {
verifyRule(ImplicitlyUnwrappedOptionalRule.description)
}
func testImplicitlyUnwrappedOptionalRuleDefaultConfiguration() {
let rule = ImplicitlyUnwrappedOptionalRule()
XCTAssertEqual(rule.configuration.mode, .allExceptIBOutlets)
XCTAssertEqual(rule.configuration.severity.severity, .warning)
}
func testImplicitlyUnwrappedOptionalRuleWarnsOnOutletsInAllMode() {
let baseDescription = ImplicitlyUnwrappedOptionalRule.description
let triggeringExamples = [
"@IBOutlet private var label: UILabel!",
"@IBOutlet var label: UILabel!",
"let int: Int!"
]
let nonTriggeringExamples = ["if !boolean {}"]
let description = baseDescription.with(nonTriggeringExamples: nonTriggeringExamples)
.with(triggeringExamples: triggeringExamples)
verifyRule(description, ruleConfiguration: ["mode": "all"],
commentDoesntViolate: true, stringDoesntViolate: true)
}
}