support swift3
This commit is contained in:
parent
09db322c6d
commit
7b6440d2a1
|
@ -378,7 +378,7 @@
|
|||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 2.3;
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
|
@ -396,7 +396,7 @@
|
|||
PRODUCT_BUNDLE_IDENTIFIER = jp.co.yahoo.shopping.SwiftyXMLParser;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SKIP_INSTALL = YES;
|
||||
SWIFT_VERSION = 2.3;
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
|
@ -407,7 +407,7 @@
|
|||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = jp.co.yahoo.shopping.SwiftyXMLParserTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 2.3;
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
|
@ -418,7 +418,7 @@
|
|||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks";
|
||||
PRODUCT_BUNDLE_IDENTIFIER = jp.co.yahoo.shopping.SwiftyXMLParserTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_VERSION = 2.3;
|
||||
SWIFT_VERSION = 3.0;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
|
|
|
@ -39,21 +39,21 @@ extension XML {
|
|||
|
||||
|
||||
*/
|
||||
public enum Accessor: CustomStringConvertible, SequenceType {
|
||||
case SingleElement(Element)
|
||||
case Sequence([Element])
|
||||
case Failure(Error)
|
||||
public enum Accessor: CustomStringConvertible, Swift.Sequence {
|
||||
case singleElement(Element)
|
||||
case sequence([Element])
|
||||
case failure(Error)
|
||||
|
||||
public init(_ element: Element) {
|
||||
self = .SingleElement(element)
|
||||
self = .singleElement(element)
|
||||
}
|
||||
|
||||
public init(_ sequence: [Element]) {
|
||||
self = .Sequence(sequence)
|
||||
self = .sequence(sequence)
|
||||
}
|
||||
|
||||
public init(_ error: Error) {
|
||||
self = .Failure(error)
|
||||
self = .failure(error)
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -81,11 +81,11 @@ extension XML {
|
|||
private subscript(index index: Int) -> Accessor {
|
||||
let accessor: Accessor
|
||||
switch self {
|
||||
case .Sequence(let elements) where index < elements.count:
|
||||
case .sequence(let elements) where index < elements.count:
|
||||
accessor = Accessor(elements[index])
|
||||
case .SingleElement(let element) where index == 0:
|
||||
case .singleElement(let element) where index == 0:
|
||||
accessor = Accessor(element)
|
||||
case .Failure(let error):
|
||||
case .failure(let error):
|
||||
accessor = Accessor(error)
|
||||
break
|
||||
default:
|
||||
|
@ -121,7 +121,7 @@ extension XML {
|
|||
private subscript(key key: String) -> Accessor {
|
||||
let accessor: Accessor
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
let filterdElements = element.childElements.filter { $0.name == key }
|
||||
if filterdElements.isEmpty {
|
||||
let error = accessError("\(key) not found.")
|
||||
|
@ -131,9 +131,9 @@ extension XML {
|
|||
} else {
|
||||
accessor = Accessor(filterdElements)
|
||||
}
|
||||
case .Failure(let error):
|
||||
case .failure(let error):
|
||||
accessor = Accessor(error)
|
||||
case .Sequence(_):
|
||||
case .sequence(_):
|
||||
fallthrough
|
||||
default:
|
||||
let error = accessError("cannot access \(key), because of multiple elements")
|
||||
|
@ -219,9 +219,9 @@ extension XML {
|
|||
public var name: String? {
|
||||
let name: String?
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
name = element.name
|
||||
case .Failure(_), .Sequence(_):
|
||||
case .failure(_), .sequence(_):
|
||||
fallthrough
|
||||
default:
|
||||
name = nil
|
||||
|
@ -233,9 +233,9 @@ extension XML {
|
|||
public var text: String? {
|
||||
let text: String?
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
text = element.text
|
||||
case .Failure(_), .Sequence(_):
|
||||
case .failure(_), .sequence(_):
|
||||
fallthrough
|
||||
default:
|
||||
text = nil
|
||||
|
@ -252,8 +252,8 @@ extension XML {
|
|||
|
||||
|
||||
/// syntax sugar to access URL Text
|
||||
public var url: NSURL? {
|
||||
return text.flatMap({NSURL(string: $0)})
|
||||
public var url: URL? {
|
||||
return text.flatMap({URL(string: $0)})
|
||||
}
|
||||
|
||||
/// syntax sugar to access Int Text
|
||||
|
@ -270,9 +270,9 @@ extension XML {
|
|||
public var attributes: [String: String] {
|
||||
let attributes: [String: String]
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
attributes = element.attributes
|
||||
case .Failure(_), .Sequence(_):
|
||||
case .failure(_), .sequence(_):
|
||||
fallthrough
|
||||
default:
|
||||
attributes = [String: String]()
|
||||
|
@ -284,11 +284,11 @@ extension XML {
|
|||
/// access to child Elements
|
||||
public var all: [Element]? {
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
return [element]
|
||||
case .Sequence(let elements):
|
||||
case .sequence(let elements):
|
||||
return elements
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -296,11 +296,11 @@ extension XML {
|
|||
/// access to child Elemnet Tag Names
|
||||
public var names: [String]? {
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
return [element.name]
|
||||
case .Sequence(let elements):
|
||||
case .sequence(let elements):
|
||||
return elements.map { $0.name }
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -308,9 +308,9 @@ extension XML {
|
|||
/// if it has wrong XML path, return Error, otherwise return nil
|
||||
public var error: Error? {
|
||||
switch self {
|
||||
case .Failure(let error):
|
||||
case .failure(let error):
|
||||
return error
|
||||
case .SingleElement(_), .Sequence(_):
|
||||
case .singleElement(_), .sequence(_):
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -319,9 +319,9 @@ extension XML {
|
|||
/// if it has wrong XML path or multiple child elements, return nil, otherwise return Element
|
||||
public var element: Element? {
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
return element
|
||||
case .Failure(_), .Sequence(_):
|
||||
case .failure(_), .sequence(_):
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -329,15 +329,15 @@ extension XML {
|
|||
/// if it has wrong XML path or no child Element, return nil, otherwise return last Element
|
||||
public var last: Accessor {
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
return Accessor(element)
|
||||
case .Sequence(let elements):
|
||||
case .sequence(let elements):
|
||||
if let lastElement = elements.last {
|
||||
return Accessor(lastElement)
|
||||
} else {
|
||||
return Accessor(accessError("cannot access last element"))
|
||||
}
|
||||
case .Failure(let error):
|
||||
case .failure(let error):
|
||||
return Accessor(error)
|
||||
}
|
||||
}
|
||||
|
@ -345,39 +345,39 @@ extension XML {
|
|||
/// if it has wrong XML path or no child Element, return nil, otherwise return first Element
|
||||
public var first: Accessor {
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
return Accessor(element)
|
||||
case .Sequence(let elements):
|
||||
case .sequence(let elements):
|
||||
if let firstElement = elements.first {
|
||||
return Accessor(firstElement)
|
||||
} else {
|
||||
return Accessor(accessError("cannot access first element"))
|
||||
}
|
||||
case .Failure(let error):
|
||||
case .failure(let error):
|
||||
return Accessor(error)
|
||||
}
|
||||
}
|
||||
|
||||
public func map<T>(transform: (Accessor) -> T) -> [T] {
|
||||
public func map<T>(_ transform: (Accessor) -> T) -> [T] {
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
return [Accessor(element)].map(transform)
|
||||
case .Sequence(let elements):
|
||||
case .sequence(let elements):
|
||||
return elements.map({ Accessor($0) }).map(transform)
|
||||
case .Failure:
|
||||
case .failure:
|
||||
return [Accessor]().map(transform)
|
||||
}
|
||||
}
|
||||
|
||||
@available(*, renamed="flatMap")
|
||||
public func mapWithSqueezeNil<T>(transform: (Accessor) -> T?) -> [T] {
|
||||
@available(*, renamed:"flatMap")
|
||||
public func mapWithSqueezeNil<T>(_ transform: (Accessor) -> T?) -> [T] {
|
||||
var accessors = [Accessor]()
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
accessors = [Accessor(element)]
|
||||
case .Sequence(let elements):
|
||||
case .sequence(let elements):
|
||||
accessors = elements.map({ Accessor($0) })
|
||||
case .Failure:
|
||||
case .failure:
|
||||
accessors = [Accessor]()
|
||||
}
|
||||
return accessors.reduce([T]()) {
|
||||
|
@ -392,18 +392,18 @@ extension XML {
|
|||
|
||||
// MARK :- SequenceType
|
||||
|
||||
public func generate() -> AnyGenerator<Accessor> {
|
||||
public func makeIterator() -> AnyIterator<Accessor> {
|
||||
let generator: [Element]
|
||||
switch self {
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
generator = [Element]()
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
generator = [element]
|
||||
case .Sequence(let elements):
|
||||
case .sequence(let elements):
|
||||
generator = elements
|
||||
}
|
||||
var index = 0
|
||||
return AnyGenerator {
|
||||
return AnyIterator {
|
||||
let nextAccessor: Accessor?
|
||||
if index < generator.count {
|
||||
nextAccessor = Accessor(generator[index])
|
||||
|
@ -420,17 +420,17 @@ extension XML {
|
|||
|
||||
public var description: String {
|
||||
switch self {
|
||||
case .SingleElement(let element):
|
||||
case .singleElement(let element):
|
||||
return "\"" + self.recursivePrintAncient(element) + "\""
|
||||
case .Sequence(let elements):
|
||||
case .sequence(let elements):
|
||||
let descriptions = elements.map { self.recursivePrintAncient($0) }
|
||||
return "[ " + descriptions.joinWithSeparator(",\n ") + " ]"
|
||||
case .Failure(let error):
|
||||
return "[ " + descriptions.joined(separator: ",\n ") + " ]"
|
||||
case .failure(let error):
|
||||
return "\(error)"
|
||||
}
|
||||
}
|
||||
|
||||
private func recursivePrintAncient(element: Element) -> String {
|
||||
private func recursivePrintAncient(_ element: Element) -> String {
|
||||
var description = element.name
|
||||
if let unwrappedParent = element.parentElement {
|
||||
description = recursivePrintAncient(unwrappedParent) + " > " + description
|
||||
|
@ -438,8 +438,8 @@ extension XML {
|
|||
return description
|
||||
}
|
||||
|
||||
private func accessError(description: String) -> Error {
|
||||
return Error.AccessError(description: description)
|
||||
private func accessError(_ description: String) -> Error {
|
||||
return Error.accessError(description: description)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,8 +25,8 @@
|
|||
import Foundation
|
||||
|
||||
extension XML {
|
||||
public enum Error: ErrorType {
|
||||
case ParseError
|
||||
case AccessError(description: String)
|
||||
public enum Error: ErrorProtocol {
|
||||
case parseError
|
||||
case accessError(description: String)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,11 +25,11 @@
|
|||
import Foundation
|
||||
|
||||
extension XML {
|
||||
class Parser: NSObject, NSXMLParserDelegate {
|
||||
func parse(data: NSData) -> Accessor {
|
||||
class Parser: NSObject, XMLParserDelegate {
|
||||
func parse(_ data: Data) -> Accessor {
|
||||
stack = [Element]()
|
||||
stack.append(documentRoot)
|
||||
let parser = NSXMLParser(data: data)
|
||||
let parser = XMLParser(data: data)
|
||||
parser.delegate = self
|
||||
parser.parse()
|
||||
return Accessor(documentRoot)
|
||||
|
@ -39,16 +39,16 @@ extension XML {
|
|||
trimmingManner = nil
|
||||
}
|
||||
|
||||
init(trimming manner: NSCharacterSet) {
|
||||
init(trimming manner: CharacterSet) {
|
||||
trimmingManner = manner
|
||||
}
|
||||
|
||||
// MARK:- private
|
||||
private var documentRoot = Element(name: "XML.Parser.AbstructedDocumentRoot")
|
||||
private var stack = [Element]()
|
||||
private let trimmingManner: NSCharacterSet?
|
||||
private let trimmingManner: CharacterSet?
|
||||
|
||||
func parser(parser: NSXMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
|
||||
func parser(_ parser: XMLParser, didStartElement elementName: String, namespaceURI: String?, qualifiedName qName: String?, attributes attributeDict: [String : String]) {
|
||||
let node = Element(name: elementName)
|
||||
if !attributeDict.isEmpty {
|
||||
node.attributes = attributeDict
|
||||
|
@ -61,7 +61,7 @@ extension XML {
|
|||
stack.append(node)
|
||||
}
|
||||
|
||||
func parser(parser: NSXMLParser, foundCharacters string: String) {
|
||||
func parser(_ parser: XMLParser, foundCharacters string: String) {
|
||||
if let text = stack.last?.text {
|
||||
stack.last?.text = text + (string ?? "")
|
||||
} else {
|
||||
|
@ -69,11 +69,11 @@ extension XML {
|
|||
}
|
||||
}
|
||||
|
||||
func parser(parser: NSXMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
|
||||
func parser(_ parser: XMLParser, didEndElement elementName: String, namespaceURI: String?, qualifiedName qName: String?) {
|
||||
if let trimmingManner = self.trimmingManner {
|
||||
stack.last?.text = stack.last?.text?.stringByTrimmingCharactersInSet(trimmingManner)
|
||||
stack.last?.text = stack.last?.text?.trimmingCharacters(in: trimmingManner)
|
||||
}
|
||||
stack.removeLast()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -34,7 +34,7 @@ infix operator ?= {} // Failable Assignment
|
|||
/**
|
||||
assign value if rhs is not optonal. When rhs is optional, nothing to do.
|
||||
*/
|
||||
public func ?=<T>(inout lhs: T, rhs: T?) {
|
||||
public func ?=<T>(lhs: inout T, rhs: T?) {
|
||||
if let unwrappedRhs = rhs {
|
||||
lhs = unwrappedRhs
|
||||
}
|
||||
|
@ -45,7 +45,7 @@ infix operator ?<< {} // Failable Push
|
|||
/**
|
||||
push value to array if rhs is not optonal. When rhs is optional, nothing to do.
|
||||
*/
|
||||
public func ?<< <T>(inout lhs: [T], rhs: T?) {
|
||||
public func ?<< <T>(lhs: inout [T], rhs: T?) {
|
||||
if let unwrappedRhs = rhs {
|
||||
lhs.append(unwrappedRhs)
|
||||
}
|
||||
|
@ -92,7 +92,7 @@ public class XML {
|
|||
- parameter data:NSData XML document
|
||||
- returns:Accessor object to access XML document
|
||||
*/
|
||||
public class func parse(data: NSData) -> Accessor {
|
||||
public class func parse(_ data: Data) -> Accessor {
|
||||
return Parser().parse(data)
|
||||
}
|
||||
|
||||
|
@ -102,9 +102,9 @@ public class XML {
|
|||
- Parameter str:String XML document
|
||||
- Returns:Accessor object to access XML document
|
||||
*/
|
||||
public class func parse(str: String) throws -> Accessor {
|
||||
guard let data = str.dataUsingEncoding(NSUTF8StringEncoding) else {
|
||||
throw XML.Error.ParseError
|
||||
public class func parse(_ str: String) throws -> Accessor {
|
||||
guard let data = str.data(using: String.Encoding.utf8) else {
|
||||
throw XML.Error.parseError
|
||||
}
|
||||
|
||||
return Parser().parse(data)
|
||||
|
@ -117,7 +117,7 @@ public class XML {
|
|||
- parameter manner:NSCharacterSet If you wannna trim Text, assign this arg
|
||||
- returns:Accessor object to access XML document
|
||||
*/
|
||||
public class func parse(data: NSData, trimming manner: NSCharacterSet) -> Accessor {
|
||||
public class func parse(_ data: Data, trimming manner: CharacterSet) -> Accessor {
|
||||
return Parser(trimming: manner).parse(data)
|
||||
}
|
||||
|
||||
|
@ -128,11 +128,11 @@ public class XML {
|
|||
- parameter manner:NSCharacterSet If you wannna trim Text, assign this arg
|
||||
- Returns:Accessor object to access XML document
|
||||
*/
|
||||
public class func parse(str: String, trimming manner: NSCharacterSet) throws -> Accessor {
|
||||
guard let data = str.dataUsingEncoding(NSUTF8StringEncoding) else {
|
||||
throw XML.Error.ParseError
|
||||
public class func parse(_ str: String, trimming manner: CharacterSet) throws -> Accessor {
|
||||
guard let data = str.data(using: String.Encoding.utf8) else {
|
||||
throw XML.Error.parseError
|
||||
}
|
||||
|
||||
return Parser(trimming: manner).parse(data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ class AccessorTests: XCTestCase {
|
|||
|
||||
let target2 = singleElementAccessor[1]
|
||||
switch target2 {
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
XCTAssert(true, "access to wrong path")
|
||||
default:
|
||||
XCTFail("need to fail")
|
||||
|
@ -72,7 +72,7 @@ class AccessorTests: XCTestCase {
|
|||
|
||||
let target3 = accessor[2]
|
||||
switch target3 {
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
XCTAssert(true, "Aaccess to wrong path")
|
||||
default:
|
||||
XCTFail("need to fail")
|
||||
|
@ -83,7 +83,7 @@ class AccessorTests: XCTestCase {
|
|||
let accessor = XML.Accessor(singleElement())
|
||||
let me = accessor["RootElement"]
|
||||
switch me {
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
XCTAssert(true, "can access corrent element")
|
||||
default:
|
||||
XCTFail("fail to get element")
|
||||
|
@ -94,7 +94,7 @@ class AccessorTests: XCTestCase {
|
|||
let accessor = XML.Accessor(singleElement())
|
||||
let children = accessor["ChildElement"]
|
||||
switch children {
|
||||
case .Sequence(_):
|
||||
case .sequence(_):
|
||||
XCTAssert(true, "can access corrent element")
|
||||
default:
|
||||
XCTFail("fail to get element")
|
||||
|
@ -105,7 +105,7 @@ class AccessorTests: XCTestCase {
|
|||
let accessor = XML.Accessor(sequence())
|
||||
let failureChildren = accessor["ChildElement"]
|
||||
switch failureChildren {
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
XCTAssert(true, "need to select one element from multiple elements")
|
||||
default:
|
||||
XCTFail("need to fail")
|
||||
|
@ -113,7 +113,7 @@ class AccessorTests: XCTestCase {
|
|||
|
||||
let successChildren = accessor[0]["ChildElement1"]
|
||||
switch successChildren {
|
||||
case .Sequence(_):
|
||||
case .sequence(_):
|
||||
XCTAssert(true, "can access corrent element")
|
||||
default:
|
||||
XCTFail("fail to get element")
|
||||
|
@ -124,7 +124,7 @@ class AccessorTests: XCTestCase {
|
|||
let accessor = XML.Accessor(failure())
|
||||
let intIndexer = accessor[0]
|
||||
switch intIndexer {
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
XCTAssert(true, "need to return failure when access wrong path once")
|
||||
default:
|
||||
XCTFail("need to fail")
|
||||
|
@ -132,7 +132,7 @@ class AccessorTests: XCTestCase {
|
|||
|
||||
let stringIndexer = accessor["ChildElement"]
|
||||
switch stringIndexer {
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
XCTAssert(true, "need to return failure when access wrong path once")
|
||||
default:
|
||||
XCTFail("need to fail")
|
||||
|
@ -143,7 +143,7 @@ class AccessorTests: XCTestCase {
|
|||
let accessor = XML.Accessor(sequence())
|
||||
let indexer = accessor[[0, "ChildElement1", 1]]
|
||||
switch indexer {
|
||||
case .SingleElement(_):
|
||||
case .singleElement(_):
|
||||
XCTAssert(true, "access element with Array")
|
||||
default:
|
||||
XCTFail("fail to get element")
|
||||
|
@ -151,7 +151,7 @@ class AccessorTests: XCTestCase {
|
|||
|
||||
let failureIndexer = accessor[[1, "Hoget", "Foge"]]
|
||||
switch failureIndexer {
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
XCTAssert(true, "access wrong path with Array")
|
||||
default:
|
||||
XCTFail("need to fail")
|
||||
|
@ -162,7 +162,7 @@ class AccessorTests: XCTestCase {
|
|||
let accessor = XML.Accessor(sequence())
|
||||
let indexer = accessor[0, "ChildElement1", 1]
|
||||
switch indexer {
|
||||
case .SingleElement(_):
|
||||
case .singleElement(_):
|
||||
XCTAssert(true, "access element with Variadic")
|
||||
default:
|
||||
XCTFail("fail to get element")
|
||||
|
@ -170,7 +170,7 @@ class AccessorTests: XCTestCase {
|
|||
|
||||
let failureIndexer = accessor[1, "Hoget", "Foge"]
|
||||
switch failureIndexer {
|
||||
case .Failure(_):
|
||||
case .failure(_):
|
||||
XCTAssert(true, "access wrong path with Variadic")
|
||||
default:
|
||||
XCTFail("need to fail")
|
||||
|
@ -399,6 +399,6 @@ class AccessorTests: XCTestCase {
|
|||
}
|
||||
|
||||
private func failure() -> XML.Error {
|
||||
return XML.Error.AccessError(description: "error")
|
||||
return XML.Error.accessError(description: "error")
|
||||
}
|
||||
}
|
||||
|
|
|
@ -38,8 +38,8 @@ class ParserTests: XCTestCase {
|
|||
}
|
||||
|
||||
func testSuccessParse() {
|
||||
guard let path = NSBundle(forClass: self.dynamicType).pathForResource("XMLDocument", ofType: "xml"),
|
||||
let data = NSData(contentsOfFile: path) else {
|
||||
guard let path = Bundle(for: self.dynamicType).pathForResource("XMLDocument", ofType: "xml"),
|
||||
let data = try? Data(contentsOf: URL(fileURLWithPath: path)) else {
|
||||
XCTFail("fail to parse")
|
||||
return
|
||||
}
|
||||
|
@ -55,8 +55,8 @@ class ParserTests: XCTestCase {
|
|||
}
|
||||
|
||||
func testFailParse() {
|
||||
guard let path = NSBundle(forClass: self.dynamicType).pathForResource("BrokenXMLDocument", ofType: "xml"),
|
||||
let data = NSData(contentsOfFile: path) else {
|
||||
guard let path = Bundle(for: self.dynamicType).pathForResource("BrokenXMLDocument", ofType: "xml"),
|
||||
let data = try? Data(contentsOf: URL(fileURLWithPath: path)) else {
|
||||
XCTFail("fail to parse")
|
||||
return
|
||||
}
|
||||
|
@ -70,8 +70,8 @@ class ParserTests: XCTestCase {
|
|||
}
|
||||
|
||||
func testTextParseWithMockData() {
|
||||
guard let path = NSBundle(forClass: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = NSData(contentsOfFile: path) else {
|
||||
guard let path = Bundle(for: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = try? Data(contentsOf: URL(fileURLWithPath: path)) else {
|
||||
XCTFail("fail to parse")
|
||||
return
|
||||
}
|
||||
|
@ -85,8 +85,8 @@ class ParserTests: XCTestCase {
|
|||
}
|
||||
|
||||
func testWhitespaceParseWithMockData() {
|
||||
guard let path = NSBundle(forClass: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = NSData(contentsOfFile: path) else {
|
||||
guard let path = Bundle(for: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = try? Data(contentsOf: URL(fileURLWithPath: path)) else {
|
||||
XCTFail("fail to parse")
|
||||
return
|
||||
}
|
||||
|
@ -100,8 +100,8 @@ class ParserTests: XCTestCase {
|
|||
}
|
||||
|
||||
func testReturnParseWithMockData() {
|
||||
guard let path = NSBundle(forClass: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = NSData(contentsOfFile: path) else {
|
||||
guard let path = Bundle(for: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = try? Data(contentsOf: URL(fileURLWithPath: path)) else {
|
||||
XCTFail("fail to parse")
|
||||
return
|
||||
}
|
||||
|
@ -115,8 +115,8 @@ class ParserTests: XCTestCase {
|
|||
}
|
||||
|
||||
func testWhitespaceAndReturnParseWithMockData() {
|
||||
guard let path = NSBundle(forClass: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = NSData(contentsOfFile: path) else {
|
||||
guard let path = Bundle(for: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = try? Data(contentsOf: URL(fileURLWithPath: path)) else {
|
||||
XCTFail("fail to parse")
|
||||
return
|
||||
}
|
||||
|
@ -131,18 +131,17 @@ class ParserTests: XCTestCase {
|
|||
}
|
||||
|
||||
func testWhitespaceAndReturnParseWithMockDataAndTrimmingWhitespaceAndLineBreak() {
|
||||
guard let path = NSBundle(forClass: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = NSData(contentsOfFile: path) else {
|
||||
guard let path = Bundle(for: self.dynamicType).pathForResource("SimpleDocument", ofType: "xml"),
|
||||
let data = try? Data(contentsOf: URL(fileURLWithPath: path)) else {
|
||||
XCTFail("fail to parse")
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
let xml = XML.Parser(trimming: .whitespaceAndNewlineCharacterSet()).parse(data)
|
||||
|
||||
let xml = XML.Parser(trimming: .whitespacesAndNewlines).parse(data)
|
||||
if let text = xml["Result", "WhitespaceReturn"].text {
|
||||
XCTAssertEqual("", text, "Parsed Success and trim them")
|
||||
} else {
|
||||
XCTAssert(false, "fail")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@ class SwiftyXMLParserTests: XCTestCase {
|
|||
|
||||
func testPerformanceExample() {
|
||||
// This is an example of a performance test case.
|
||||
self.measureBlock {
|
||||
self.measure {
|
||||
// Put the code you want to measure the time of here.
|
||||
}
|
||||
}
|
||||
|
|
|
@ -37,8 +37,8 @@ class XMLTests: XCTestCase {
|
|||
}
|
||||
|
||||
func testParse() {
|
||||
if let path = NSBundle(forClass: self.dynamicType).pathForResource("XMLDocument", ofType: "xml") {
|
||||
if let data = NSData(contentsOfFile: path) {
|
||||
if let path = Bundle(for: self.dynamicType).pathForResource("XMLDocument", ofType: "xml") {
|
||||
if let data = try? Data(contentsOf: URL(fileURLWithPath: path)) {
|
||||
let xml = XML.parse(data)
|
||||
if let _ = xml["ResultSet"].error {
|
||||
XCTFail("fail to parse")
|
||||
|
@ -56,8 +56,8 @@ class XMLTests: XCTestCase {
|
|||
|
||||
|
||||
func testSuccessParseFromString() {
|
||||
if let path = NSBundle(forClass: self.dynamicType).pathForResource("XMLDocument", ofType: "xml"),
|
||||
let string = try? String(contentsOfFile: path, encoding: NSUTF8StringEncoding),
|
||||
if let path = Bundle(for: self.dynamicType).pathForResource("XMLDocument", ofType: "xml"),
|
||||
let string = try? String(contentsOfFile: path, encoding: String.Encoding.utf8),
|
||||
let xml = try? XML.parse(string) {
|
||||
if let _ = xml["ResultSet"].error {
|
||||
XCTFail("fail to parse")
|
||||
|
|
Loading…
Reference in New Issue