     func testThatAfterInitItHasNoConstraints() {
         XCTAssertEqual(validator.constraints.count, 0)
     }
+    
+    func testThatItCanBeInstantiatedWithAnEmptyArrayOfConstraints() {
+        let validator = Validator<String>(constraints:[])
+        XCTAssertEqual(validator.constraints.count, 0)
+    }
+    
+    func testThatItCanBeInstantiatedWithAnArrayofConstrains() {
+        
+        let predicate = MockValidatorPredicate()
+        let constraint = ValidationConstraint(predicate: predicate, message: "Input should be nil")
+        
+        let validator = Validator<String>(constraints:[constraint])
+        XCTAssertEqual(validator.constraints.count, 1)
+    }
+    
+    func testThatItCanBeInstantiatedWithAnUnknownNumberOfConstrains() {
+        
+        let predicate = MockValidatorPredicate()
+        let constraint = ValidationConstraint(predicate: predicate, message: "Input should be nil")
+        
+        let validator = Validator<String>(constraints:constraint)
+        XCTAssertEqual(validator.constraints.count, 1)
+    }
+}
+
+extension ValidatorTests {
     
     func testThatCanAddValidationConstraint() {
         


extension ValidatorTests {
    
    static var allTests : [(String, (ValidatorTests) -> () throws -> Void)] {
        return [
            ("testThatItCanBeInstantiated", testThatItCanBeInstantiated),

        validator = nil
        super.tearDown()
    }
}

extension ValidatorTests {
    
    func testThatItCanBeInstantiated() {
        XCTAssertNotNil(validator)
    }
