import XCTest
@testable import HummingbirdMustache
final class MethodTests: XCTestCase {
func testLowercased() throws {
let template = try HBMustacheTemplate(string: """
{{ lowercased(name) }}
""")
let object: [String: Any] = ["name": "Test"]
XCTAssertEqual(template.render(object), "test")
}
func testUppercased() throws {
let template = try HBMustacheTemplate(string: """
{{ uppercased(name) }}
""")
let object: [String: Any] = ["name": "Test"]
XCTAssertEqual(template.render(object), "TEST")
}
func testReversed() throws {
let template = try HBMustacheTemplate(string: """
{{#reversed(repo)}}
{{ name }}
{{/repo}}
""")
let object: [String: Any] = ["repo": [["name": "resque"], ["name": "hub"], ["name": "rip"]]]
XCTAssertEqual(template.render(object), """
rip
hub
resque
""")
}
func testArrayEnumerated() throws {
let template = try HBMustacheTemplate(string: """
{{#enumerated(repo)}}
{{ offset }}) {{ element.name }}
{{/repo}}
""")
let object: [String: Any] = ["repo": [["name": "resque"], ["name": "hub"], ["name": "rip"]]]
XCTAssertEqual(template.render(object), """
0) resque
1) hub
2) rip
""")
}
func testDictionaryEnumerated() throws {
let template = try HBMustacheTemplate(string: """
{{#enumerated(.)}}{{ element.key }} = {{ element.value }}{{/.}}
""")
let object: [String: Any] = ["one": 1, "two": 2]
let result = template.render(object)
XCTAssertTrue(result == "one = 1two = 2" || result == "two = 2one = 1")
}
}