Skip to content

Commit

Permalink
Fix: Multiple Rules. (#5)
Browse files Browse the repository at this point in the history
  • Loading branch information
Yuki Nagai authored Sep 21, 2016
1 parent 8683eb8 commit 6e831f9
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 1 deletion.
14 changes: 14 additions & 0 deletions AIRValidator.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
BF31F26E1D7D6EC900CB2343 /* MinimumLengthRuleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF31F26B1D7D6EC900CB2343 /* MinimumLengthRuleTests.swift */; };
BF31F26F1D7D6EC900CB2343 /* RequiredRuleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF31F26C1D7D6EC900CB2343 /* RequiredRuleTests.swift */; };
BF31F2731D7D740900CB2343 /* Result.swift in Sources */ = {isa = PBXBuildFile; fileRef = BF31F2721D7D740900CB2343 /* Result.swift */; };
BFD924AC1D922F6500DBB071 /* ValidatableTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = BFD924AB1D922F6500DBB071 /* ValidatableTests.swift */; };
/* End PBXBuildFile section */

/* Begin PBXContainerItemProxy section */
Expand Down Expand Up @@ -45,6 +46,7 @@
BF31F26B1D7D6EC900CB2343 /* MinimumLengthRuleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = MinimumLengthRuleTests.swift; sourceTree = "<group>"; };
BF31F26C1D7D6EC900CB2343 /* RequiredRuleTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RequiredRuleTests.swift; sourceTree = "<group>"; };
BF31F2721D7D740900CB2343 /* Result.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Result.swift; sourceTree = "<group>"; };
BFD924AB1D922F6500DBB071 /* ValidatableTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ValidatableTests.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */

/* Begin PBXFrameworksBuildPhase section */
Expand Down Expand Up @@ -117,6 +119,7 @@
BF31F2581D7D6EB100CB2343 /* Tests */ = {
isa = PBXGroup;
children = (
BFD924AA1D922F4E00DBB071 /* Extensions */,
BF31F2691D7D6EC900CB2343 /* Rules */,
);
name = Tests;
Expand Down Expand Up @@ -152,6 +155,14 @@
path = Rules;
sourceTree = "<group>";
};
BFD924AA1D922F4E00DBB071 /* Extensions */ = {
isa = PBXGroup;
children = (
BFD924AB1D922F6500DBB071 /* ValidatableTests.swift */,
);
path = Extensions;
sourceTree = "<group>";
};
/* End PBXGroup section */

/* Begin PBXHeadersBuildPhase section */
Expand Down Expand Up @@ -276,6 +287,7 @@
buildActionMask = 2147483647;
files = (
BF31F26D1D7D6EC900CB2343 /* MaximumLengthRuleTests.swift in Sources */,
BFD924AC1D922F6500DBB071 /* ValidatableTests.swift in Sources */,
BF31F26F1D7D6EC900CB2343 /* RequiredRuleTests.swift in Sources */,
BF31F26E1D7D6EC900CB2343 /* MinimumLengthRuleTests.swift in Sources */,
);
Expand Down Expand Up @@ -466,6 +478,7 @@
BF31F2511D7D6DE900CB2343 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
BF31F2521D7D6DE900CB2343 /* Build configuration list for PBXNativeTarget "AIRValidatorTests" */ = {
isa = XCConfigurationList;
Expand All @@ -474,6 +487,7 @@
BF31F2541D7D6DE900CB2343 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
Expand Down
2 changes: 1 addition & 1 deletion Source/Extensions/Validatable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public protocol Validatable {
}

extension Validatable {
public func validate<T: Rule>(_ rules: [T]) -> Result {
public func validate(_ rules: [Rule]) -> Result {
let errors = rules.filter { !$0.validate(self) }
if errors.isEmpty {
return .valid
Expand Down
18 changes: 18 additions & 0 deletions Tests/Extensions/ValidatableTests.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
//
// ValidatableTests.swift
// AIRValidator
//
// Created by Yuki Nagai on 9/21/16.
// Copyright © 2016 Recruit Lifestyle Co., Ltd. All rights reserved.
//

import XCTest
@testable import AIRValidator

final class ValidatableTests: XCTestCase {
func testMultipleRules() {
let string = "string"
let rules = [MinimumLengthRule(1), RequiredRule()] as [Rule]
_ = string.validate(rules)
}
}

0 comments on commit 6e831f9

Please sign in to comment.