Merge pull request #20 from snorpey/deregister-textfield

add deregisterField method
This commit is contained in:
Jeff Potter 2015-04-15 13:37:58 -06:00
commit 62c0706d28
3 changed files with 26 additions and 0 deletions

View File

@ -48,6 +48,8 @@ override func viewDidLoad() {
validator.registerField(phoneNumberTextField, errorLabel: phoneNumberErrorLabel, rules: [RequiredRule(), MinLengthRule(length: 9)])
validator.registerField(zipcodeTextField, errorLabel: zipcodeErrorLabel, rules: [RequiredRule(), ZipCodeRule(regex = "\\d{5}")])
// You can unregister a text field if you no longer want to validate it
validator.unregisterField(fullNameTextField)
}
```

View File

@ -31,6 +31,10 @@ public class Validator {
validations[textField] = ValidationRule(textField: textField, rules:rules, errorLabel:errorLabel)
}
public func unregisterField(textField:UITextField) {
validations.removeValueForKey(textField)
}
public func validate(delegate:ValidationDelegate) {
for field in validations.keys {

View File

@ -31,6 +31,14 @@ class ValidatorTests: XCTestCase {
let LEN_5 = "Howdy"
let LEN_20 = "Paint the cat orange"
let REGISTER_TXT_FIELD = UITextField()
let REGISTER_VALIDATOR = Validator()
let REGISTER_RULES = [Rule]()
let UNREGISTER_TXT_FIELD = UITextField()
let UNREGISTER_VALIDATOR = Validator()
let UNREGISTER_RULES = [Rule]()
override func setUp() {
super.setUp()
// Put setup code here. This method is called before the invocation of each test method in the class.
@ -144,4 +152,16 @@ class ValidatorTests: XCTestCase {
XCTAssertFalse(FullNameRule().validate("Carl"), "Full Name should be invalid")
}
// MARK: Register Field
func testRegisterField(){
REGISTER_VALIDATOR.registerField(REGISTER_TXT_FIELD, rules: REGISTER_RULES)
XCTAssert(REGISTER_VALIDATOR.validations[REGISTER_TXT_FIELD] != nil, "Textfield should register")
}
func testUnregisterField(){
UNREGISTER_VALIDATOR.registerField(UNREGISTER_TXT_FIELD, rules: UNREGISTER_RULES)
UNREGISTER_VALIDATOR.unregisterField(UNREGISTER_TXT_FIELD)
XCTAssert(UNREGISTER_VALIDATOR.validations[UNREGISTER_TXT_FIELD] == nil, "Textfield should unregister")
}
}