Skip to content

Commit

Permalink
Add YES/NO Bool extension
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianvarela committed Oct 1, 2018
1 parent 658f45f commit 2754afd
Show file tree
Hide file tree
Showing 2 changed files with 25 additions and 0 deletions.
12 changes: 12 additions & 0 deletions Source/Extensions/Foundation/BoolExtensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,14 @@ public extension Bool {
}
}

public init?(yesNoString: String) {
switch yesNoString.uppercased() {
case "YES": self = true
case "NO": self = false
default: return nil
}
}

public init?(oneZeroString: String) {
switch oneZeroString {
case "1": self = true
Expand Down Expand Up @@ -45,6 +53,10 @@ public extension Bool {
return self ? "On" : "Off"
}

public var yesNoString: String {
return self ? "Yes" : "No"
}

public var trueFalseString: String {
return self ? "True" : "False"
}
Expand Down
13 changes: 13 additions & 0 deletions Tests/Extensions/Foundation/BoolExtensionsTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,14 @@ public class BoolExtensionsTests: XCTestCase {
XCTAssertEqual(Bool(onOffString: "Off"), false)
XCTAssertNil(Bool(onOffString: "caca"))

XCTAssertEqual(Bool(yesNoString: "yes"), true)
XCTAssertEqual(Bool(yesNoString: "YES"), true)
XCTAssertEqual(Bool(yesNoString: "Yes"), true)
XCTAssertEqual(Bool(yesNoString: "no"), false)
XCTAssertEqual(Bool(yesNoString: "NO"), false)
XCTAssertEqual(Bool(yesNoString: "No"), false)
XCTAssertNil(Bool(yesNoString: "caca"))

XCTAssertEqual(Bool(oneZeroString: "1"), true)
XCTAssertEqual(Bool(oneZeroString: "0"), false)
XCTAssertNil(Bool(oneZeroString: "caca"))
Expand Down Expand Up @@ -47,6 +55,11 @@ public class BoolExtensionsTests: XCTestCase {
XCTAssertEqual(true.onOffString, "On")
}

public func testYesNoString() {
XCTAssertEqual(false.yesNoString, "No")
XCTAssertEqual(true.yesNoString, "Yes")
}

public func testTrueFalseString() {
XCTAssertEqual(false.trueFalseString, "False")
XCTAssertEqual(true.trueFalseString, "True")
Expand Down

0 comments on commit 2754afd

Please sign in to comment.