50 lines
2.3 KiB
Swift
50 lines
2.3 KiB
Swift
import Foundation
|
|
|
|
@main
|
|
enum GiftContactInputCheck {
|
|
static var assertions = 0
|
|
|
|
static func check(_ condition: Bool, _ message: String) {
|
|
guard condition else {
|
|
print("FAIL gift-contact-input: \(message)")
|
|
exit(1)
|
|
}
|
|
assertions += 1
|
|
}
|
|
|
|
static func main() {
|
|
let names = GiftContactInputRule.name
|
|
check(names.acceptsEditing(""), "empty name is editable")
|
|
check(!names.acceptsSubmission(""), "empty name is not submittable")
|
|
for value in ["가", "가나다라마바사아자차카타", "A", "AAAAAAAAAAAA", "가나다", "ㅎㅏㄴ", "Soda", "소다Soda"] {
|
|
check(names.acceptsEditing(value), "name accepts \(value)")
|
|
check(names.acceptsSubmission(value), "name submits \(value)")
|
|
}
|
|
for value in ["가나다라마바사아자차카타파", "AAAAAAAAAAAAA", " ", "123", "!", "🙂", "日本"] {
|
|
check(!names.acceptsEditing(value), "name rejects \(value)")
|
|
check(!names.acceptsSubmission(value), "name does not submit \(value)")
|
|
}
|
|
|
|
let phones = GiftContactInputRule.phoneNumber
|
|
check(phones.acceptsEditing(""), "empty phone is editable")
|
|
check(!phones.acceptsSubmission(""), "empty phone is not submittable")
|
|
for length in 1...11 {
|
|
let value = String(repeating: "1", count: length)
|
|
check(phones.acceptsEditing(value), "phone accepts length \(length)")
|
|
check(!phones.acceptsSubmission(value), "phone does not submit length \(length)")
|
|
}
|
|
check(phones.acceptsEditing("01012345678"), "valid phone is editable")
|
|
check(phones.acceptsSubmission("01012345678"), "valid phone submits")
|
|
for value in [String(repeating: "1", count: 12), "1 2", "+123", "abc", "🙂", "123", "010-1234-5678", "010 12345678"] {
|
|
check(!phones.acceptsEditing(value), "phone rejects \(value)")
|
|
check(!phones.acceptsSubmission(value), "phone does not submit \(value)")
|
|
}
|
|
for value in ["01112345678", "11012345678", "12345678901"] {
|
|
check(phones.acceptsEditing(value), "phone accepts wrong-prefix editing \(value)")
|
|
check(!phones.acceptsSubmission(value), "phone rejects wrong-prefix submission \(value)")
|
|
}
|
|
|
|
print("PASS gift-contact-input: \(assertions) assertions")
|
|
}
|
|
}
|