2016-06-17 15:36:16 +03:00
|
|
|
import Foundation
|
|
|
|
import Macaw
|
|
|
|
|
|
|
|
class TestUtils {
|
|
|
|
|
2016-09-30 17:57:29 +03:00
|
|
|
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)
|
2016-09-01 13:03:48 +03:00
|
|
|
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))
|
2016-10-19 09:04:38 +03:00
|
|
|
return referenceArray.elementsEqual(parametersArray, by: { first, second in
|
2016-09-01 13:03:48 +03:00
|
|
|
return first.0 == second.0 && first.1 == second.1
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return false
|
|
|
|
}
|
2016-06-17 15:36:16 +03:00
|
|
|
|
2016-09-30 17:57:29 +03:00
|
|
|
class func prepareParametersList(_ mirror: Mirror) -> [(String, String)] {
|
2016-09-01 13:03:48 +03:00
|
|
|
var result: [(String, String)] = []
|
2016-09-30 17:57:29 +03:00
|
|
|
for (_, attribute) in mirror.children.enumerated() {
|
2016-11-25 13:14:06 +03:00
|
|
|
if let label = attribute.label , (label == "_value" || label.characters.first != "_") && label != "contentsVar" {
|
2016-09-30 17:57:29 +03:00
|
|
|
result.append((label, String(describing: attribute.value)))
|
|
|
|
result.append(contentsOf: prepareParametersList(Mirror(reflecting: attribute.value)))
|
2016-09-01 13:03:48 +03:00
|
|
|
}
|
|
|
|
}
|
|
|
|
return result
|
|
|
|
}
|
2016-06-17 15:36:16 +03:00
|
|
|
|
2016-09-30 17:57:29 +03:00
|
|
|
}
|