diff --git a/phpmon-tests/Parsers/PhpConfigurationTest.swift b/phpmon-tests/Parsers/PhpConfigurationTest.swift index de26703..750037b 100644 --- a/phpmon-tests/Parsers/PhpConfigurationTest.swift +++ b/phpmon-tests/Parsers/PhpConfigurationTest.swift @@ -22,6 +22,24 @@ class PhpConfigurationTest: XCTestCase { XCTAssertGreaterThan(iniFile.extensions.count, 0) } + func testCanCheckKeyExistence() throws { + let iniFile = PhpConfigurationFile.from(filePath: Self.phpIniFileUrl.path)! + + XCTAssertTrue(iniFile.has(key: "error_reporting")) + XCTAssertTrue(iniFile.has(key: "display_errors")) + XCTAssertFalse(iniFile.has(key: "my_unknown_key")) + } + + func testCanCheckKeyValue() throws { + let iniFile = PhpConfigurationFile.from(filePath: Self.phpIniFileUrl.path)! + + XCTAssertNotNil(iniFile.get(for: "error_reporting")) + XCTAssert(iniFile.get(for: "error_reporting") == "E_ALL") + + XCTAssertNotNil(iniFile.get(for: "display_errors")) + XCTAssert(iniFile.get(for: "display_errors") == "On") + } + func testCanSwapConfigurationValue() throws { let destination = Utility.copyToTemporaryFile(resourceName: "php", fileExtension: "ini")! diff --git a/phpmon/Common/PHP/PhpConfigurationFile.swift b/phpmon/Common/PHP/PhpConfigurationFile.swift index 8642341..df7ec35 100644 --- a/phpmon/Common/PHP/PhpConfigurationFile.swift +++ b/phpmon/Common/PHP/PhpConfigurationFile.swift @@ -53,12 +53,19 @@ class PhpConfigurationFile: CreatedFromFile { // MARK: API - public func has(key: String) { - // TODO + public func has(key: String) -> Bool { + return self.content.contains { (_: String, section: Section) in + return section.keys.contains(key) + } } - public func value(for key: String) { - // TODO + public func get(for key: String) -> String? { + for (_, section) in self.content { + if section.keys.contains(key) { + return section[key] + } + } + return nil } public func replace(key: String, value: String) {