56 lines
2.4 KiB
Swift
56 lines
2.4 KiB
Swift
@testable import SwiftLintFramework
|
|
import XCTest
|
|
|
|
class VerticalWhitespaceRuleTests: XCTestCase {
|
|
private let ruleID = VerticalWhitespaceRule.description.identifier
|
|
|
|
func testAttributesWithMaxEmptyLines() {
|
|
// Test with custom `max_empty_lines`
|
|
let maxEmptyLinesDescription = VerticalWhitespaceRule.description
|
|
.with(nonTriggeringExamples: [Example("let aaaa = 0\n\n\n")])
|
|
.with(triggeringExamples: [Example("struct AAAA {}\n\n\n\n")])
|
|
.with(corrections: [:])
|
|
|
|
verifyRule(maxEmptyLinesDescription,
|
|
ruleConfiguration: ["max_empty_lines": 2])
|
|
}
|
|
|
|
func testAutoCorrectionWithMaxEmptyLines() {
|
|
let maxEmptyLinesDescription = VerticalWhitespaceRule.description
|
|
.with(nonTriggeringExamples: [])
|
|
.with(triggeringExamples: [])
|
|
.with(corrections: [
|
|
Example("let b = 0\n\n↓\n↓\n↓\n\nclass AAA {}\n"): Example("let b = 0\n\n\nclass AAA {}\n"),
|
|
Example("let b = 0\n\n\nclass AAA {}\n"): Example("let b = 0\n\n\nclass AAA {}\n")
|
|
])
|
|
|
|
verifyRule(maxEmptyLinesDescription,
|
|
ruleConfiguration: ["max_empty_lines": 2])
|
|
}
|
|
|
|
func testViolationMessageWithMaxEmptyLines() {
|
|
guard let config = makeConfig(["max_empty_lines": 2], ruleID) else {
|
|
XCTFail("Failed to create configuration")
|
|
return
|
|
}
|
|
let allViolations = violations(Example("let aaaa = 0\n\n\n\nlet bbb = 2\n"), config: config)
|
|
|
|
let verticalWhiteSpaceViolation = allViolations.first { $0.ruleIdentifier == ruleID }
|
|
if let violation = verticalWhiteSpaceViolation {
|
|
XCTAssertEqual(violation.reason, "Limit vertical whitespace to maximum 2 empty lines. Currently 3.")
|
|
} else {
|
|
XCTFail("A vertical whitespace violation should have been triggered!")
|
|
}
|
|
}
|
|
|
|
func testViolationMessageWithDefaultConfiguration() {
|
|
let allViolations = violations(Example("let aaaa = 0\n\n\n\nlet bbb = 2\n"))
|
|
let verticalWhiteSpaceViolation = allViolations.first(where: { $0.ruleIdentifier == ruleID })
|
|
if let violation = verticalWhiteSpaceViolation {
|
|
XCTAssertEqual(violation.reason, "Limit vertical whitespace to a single empty line. Currently 3.")
|
|
} else {
|
|
XCTFail("A vertical whitespace violation should have been triggered!")
|
|
}
|
|
}
|
|
}
|