Files
SwiftLint/Tests/SwiftLintFrameworkTests/ConfigurationAliasesTests.swift
JP Simard e63e8cad0f Add UnusedDeclarationRule (#2814)
This PR adds a new `unused_declaration` analyzer rule to lint for unused declarations.
By default, detects unused `fileprivate`, `private` and `internal` declarations.
Configure the rule with `include_public_and_open: true` to also detect unused `public` and `open` declarations.

Completely remove the `unused_private_declaration` rule.

This is built on the work enabling collecting rule infrastructure in https://github.com/realm/SwiftLint/pull/2714.
2019-07-18 18:23:43 -07:00

39 lines
1.5 KiB
Swift

@testable import SwiftLintFramework
import XCTest
final class ConfigurationAliasesTests: XCTestCase {
let testRuleList = RuleList(rules: RuleWithLevelsMock.self)
func testConfiguresCorrectlyFromDeprecatedAlias() throws {
let ruleConfiguration = [1, 2]
let config = ["mock": ruleConfiguration]
let rules = try testRuleList.configuredRules(with: config)
XCTAssertTrue(rules == [try RuleWithLevelsMock(configuration: ruleConfiguration)])
}
func testReturnsNilWithDuplicatedConfiguration() {
let dict = ["mock": [1, 2], "severity_level_mock": [1, 3]]
let configuration = Configuration(dict: dict, ruleList: testRuleList)
XCTAssertNil(configuration)
}
func testInitsFromDeprecatedAlias() {
let ruleConfiguration = [1, 2]
let configuration = Configuration(dict: ["mock": ruleConfiguration], ruleList: testRuleList)
XCTAssertNotNil(configuration)
}
func testWhitelistRulesFromDeprecatedAlias() {
let configuration = Configuration(dict: ["whitelist_rules": ["mock"]], ruleList: testRuleList)!
let configuredIdentifiers = configuration.rules.map {
type(of: $0).description.identifier
}
XCTAssertEqual(configuredIdentifiers, ["severity_level_mock"])
}
func testDisabledRulesFromDeprecatedAlias() {
let configuration = Configuration(dict: ["disabled_rules": ["mock"]], ruleList: testRuleList)!
XCTAssert(configuration.rules.isEmpty)
}
}