1
1
mirror of https://github.com/exyte/Macaw.git synced 2024-09-19 17:07:13 +03:00
Macaw/MacawTests/TestUtils.swift
2016-09-30 20:57:29 +06:00

34 lines
1.2 KiB
Swift

import Foundation
import Macaw
class TestUtils {
class func compareWithReferenceObject(_ fileName: String, referenceObject: AnyObject) -> Bool {
let bundle = Bundle(for: type(of: TestUtils()))
if let path = bundle.path(forResource: fileName, ofType: "svg") {
let content = try? NSString(contentsOfFile: path, encoding: String.Encoding.utf8.rawValue)
if let svgString = content as? String {
let group = SVGParser.parse(text: svgString)
let referenceArray = TestUtils.prepareParametersList(Mirror(reflecting: referenceObject))
let parametersArray = TestUtils.prepareParametersList(Mirror(reflecting: group))
return referenceArray.elementsEqual(parametersArray, isEquivalent: { first, second in
return first.0 == second.0 && first.1 == second.1
})
}
}
return false
}
class func prepareParametersList(_ mirror: Mirror) -> [(String, String)] {
var result: [(String, String)] = []
for (_, attribute) in mirror.children.enumerated() {
if let label = attribute.label , label == "_value" || label.characters.first != "_" {
result.append((label, String(describing: attribute.value)))
result.append(contentsOf: prepareParametersList(Mirror(reflecting: attribute.value)))
}
}
return result
}
}