mirror of
https://github.com/encounter/JSONAPI.git
synced 2026-03-30 11:18:38 -07:00
52 lines
1.5 KiB
Swift
52 lines
1.5 KiB
Swift
//
|
|
// TransformerTests.swift
|
|
//
|
|
//
|
|
// Created by Mathew Polzin on 8/2/19.
|
|
//
|
|
|
|
import XCTest
|
|
import JSONAPI
|
|
import JSONAPITesting
|
|
|
|
class TransformerTests: XCTestCase {
|
|
func testIdentityTransform() {
|
|
let inString = "hello world"
|
|
|
|
XCTAssertNoThrow(try IdentityTransformer.transform(inString))
|
|
XCTAssertEqual(inString, try? IdentityTransformer.transform(inString))
|
|
|
|
XCTAssertNoThrow(try IdentityTransformer.reverse(inString))
|
|
XCTAssertEqual(inString, try? IdentityTransformer.reverse(inString))
|
|
}
|
|
|
|
func testValidator() {
|
|
let string1 = "hello"
|
|
let string2 = "hello world"
|
|
|
|
XCTAssertThrowsError(try MoreThanFiveCharValidator.validate(string1))
|
|
XCTAssertThrowsError(try MoreThanFiveCharValidator.transform(string1))
|
|
XCTAssertThrowsError(try MoreThanFiveCharValidator.reverse(string1))
|
|
|
|
XCTAssertNoThrow(try MoreThanFiveCharValidator.validate(string2))
|
|
XCTAssertNoThrow(try MoreThanFiveCharValidator.transform(string2))
|
|
XCTAssertNoThrow(try MoreThanFiveCharValidator.reverse(string2))
|
|
|
|
XCTAssertEqual(string2, try MoreThanFiveCharValidator.transform(string2))
|
|
XCTAssertEqual(string2, try MoreThanFiveCharValidator.reverse(string2))
|
|
}
|
|
}
|
|
|
|
enum MoreThanFiveCharValidator: Validator {
|
|
public static func transform(_ value: String) throws -> String {
|
|
guard value.count > 5 else {
|
|
throw Error.fewerThanFiveChars
|
|
}
|
|
return value
|
|
}
|
|
|
|
enum Error: Swift.Error {
|
|
case fewerThanFiveChars
|
|
}
|
|
}
|