diff --git a/Source/Extensions/Foundation/BoolExtensions.swift b/Source/Extensions/Foundation/BoolExtensions.swift index 73a6fa7..cc78810 100644 --- a/Source/Extensions/Foundation/BoolExtensions.swift +++ b/Source/Extensions/Foundation/BoolExtensions.swift @@ -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 @@ -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" } diff --git a/Tests/Extensions/Foundation/BoolExtensionsTests.swift b/Tests/Extensions/Foundation/BoolExtensionsTests.swift index 5b0ea28..8c2f93a 100644 --- a/Tests/Extensions/Foundation/BoolExtensionsTests.swift +++ b/Tests/Extensions/Foundation/BoolExtensionsTests.swift @@ -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")) @@ -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")