diff --git a/DVR/Cassette.swift b/DVR/Cassette.swift index d86460c..8e16ceb 100644 --- a/DVR/Cassette.swift +++ b/DVR/Cassette.swift @@ -27,7 +27,7 @@ extension Cassette { var dictionary: [String: AnyObject] { return [ "name": name, - "interactions": interactions.map() { $0.dictionary } + "interactions": interactions.map { $0.dictionary } ] } @@ -36,14 +36,10 @@ extension Cassette { self.name = name - var interactions = [Interaction]() if let array = dictionary["interactions"] as? [[String: AnyObject]] { - for dictionary in array { - if let interaction = Interaction(dictionary: dictionary) { - interactions.append(interaction) - } - } + interactions = array.flatMap { Interaction(dictionary: $0) } + } else { + interactions = [] } - self.interactions = interactions } } diff --git a/DVR/Session.swift b/DVR/Session.swift index 22c098d..a84c8c4 100644 --- a/DVR/Session.swift +++ b/DVR/Session.swift @@ -6,7 +6,7 @@ public class Session: NSURLSession { public var outputDirectory: String public let cassetteName: String - public var recordingEnabled: Bool = true + public var recordingEnabled = true private let testBundle: NSBundle @@ -39,9 +39,7 @@ public class Session: NSURLSession { if let json = try NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String: AnyObject] { return Cassette(dictionary: json) } - } catch { - return nil - } + } catch {} return nil } } diff --git a/DVR/SessionDataTask.swift b/DVR/SessionDataTask.swift index 4f90a3a..fba41c4 100644 --- a/DVR/SessionDataTask.swift +++ b/DVR/SessionDataTask.swift @@ -31,14 +31,12 @@ class SessionDataTask: NSURLSessionDataTask { } if cassette != nil { - print("[DVR] Invalid request. The request was not found in the cassette.") - abort() + fatalError("[DVR] Invalid request. The request was not found in the cassette.") } // Cassette is missing. Record. if session.recordingEnabled == false { - print("[DVR] Recording is disabled.") - abort() + fatalError("[DVR] Recording is disabled.") } // Create directory @@ -60,14 +58,12 @@ class SessionDataTask: NSURLSessionDataTask { let outputPath = outputDirectory.stringByAppendingPathComponent(self.session.cassetteName).stringByAppendingPathExtension("json")! let data = try NSJSONSerialization.dataWithJSONObject(cassette.dictionary, options: [.PrettyPrinted]) data.writeToFile(outputPath, atomically: true) - print("[DVR] Persisted cassette at \(outputPath). Please add this file to your test target") - abort() + fatalError("[DVR] Persisted cassette at \(outputPath). Please add this file to your test target") } catch { // Do nothing } - print("[DVR] Failed to persist cassette.") - abort() + fatalError("[DVR] Failed to persist cassette.") } task?.resume() } diff --git a/DVR/URLResponse.swift b/DVR/URLResponse.swift index 54dd2dc..10295b9 100644 --- a/DVR/URLResponse.swift +++ b/DVR/URLResponse.swift @@ -17,13 +17,11 @@ class URLResonse: NSURLResponse { extension NSURLResponse { var dictionary: [String: AnyObject] { - var dictionary = [String: AnyObject]() - if let url = URL?.absoluteString { - dictionary["url"] = url + return ["url": url] } - return dictionary + return [:] } }