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") } }