AFError+AlamofireTests.swift 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273
  1. //
  2. // AFError+AlamofireTests.swift
  3. //
  4. // Copyright (c) 2014-2016 Alamofire Software Foundation (http://alamofire.org/)
  5. //
  6. // Permission is hereby granted, free of charge, to any person obtaining a copy
  7. // of this software and associated documentation files (the "Software"), to deal
  8. // in the Software without restriction, including without limitation the rights
  9. // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
  10. // copies of the Software, and to permit persons to whom the Software is
  11. // furnished to do so, subject to the following conditions:
  12. //
  13. // The above copyright notice and this permission notice shall be included in
  14. // all copies or substantial portions of the Software.
  15. //
  16. // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
  17. // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  18. // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
  19. // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
  20. // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
  21. // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
  22. // THE SOFTWARE.
  23. //
  24. import Alamofire
  25. extension AFError {
  26. var isBodyPartURLInvalid: Bool {
  27. if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartURLInvalid { return true }
  28. return false
  29. }
  30. var isBodyPartFilenameInvalid: Bool {
  31. if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFilenameInvalid { return true }
  32. return false
  33. }
  34. var isBodyPartFileNotReachable: Bool {
  35. if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileNotReachable { return true }
  36. return false
  37. }
  38. var isBodyPartFileNotReachableWithError: Bool {
  39. if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileNotReachableWithError { return true }
  40. return false
  41. }
  42. var isBodyPartFileIsDirectory: Bool {
  43. if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileIsDirectory { return true }
  44. return false
  45. }
  46. var isBodyPartFileSizeNotAvailable: Bool {
  47. if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileSizeNotAvailable { return true }
  48. return false
  49. }
  50. var isBodyPartFileSizeQueryFailedWithError: Bool {
  51. if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartFileSizeQueryFailedWithError { return true }
  52. return false
  53. }
  54. var isBodyPartInputStreamCreationFailed: Bool {
  55. if case let .multipartEncodingFailed(reason) = self, reason.isBodyPartInputStreamCreationFailed { return true }
  56. return false
  57. }
  58. var isOutputStreamCreationFailed: Bool {
  59. if case let .multipartEncodingFailed(reason) = self, reason.isOutputStreamCreationFailed { return true }
  60. return false
  61. }
  62. var isOutputStreamFileAlreadyExists: Bool {
  63. if case let .multipartEncodingFailed(reason) = self, reason.isOutputStreamFileAlreadyExists { return true }
  64. return false
  65. }
  66. var isOutputStreamURLInvalid: Bool {
  67. if case let .multipartEncodingFailed(reason) = self, reason.isOutputStreamURLInvalid { return true }
  68. return false
  69. }
  70. var isOutputStreamWriteFailed: Bool {
  71. if case let .multipartEncodingFailed(reason) = self, reason.isOutputStreamWriteFailed { return true }
  72. return false
  73. }
  74. var isInputStreamReadFailed: Bool {
  75. if case let .multipartEncodingFailed(reason) = self, reason.isInputStreamReadFailed { return true }
  76. return false
  77. }
  78. // SerializationFailureReason
  79. var isInputDataNil: Bool {
  80. if case let .responseSerializationFailed(reason) = self, reason.isInputDataNil { return true }
  81. return false
  82. }
  83. var isInputDataNilOrZeroLength: Bool {
  84. if case let .responseSerializationFailed(reason) = self, reason.isInputDataNilOrZeroLength { return true }
  85. return false
  86. }
  87. var isInputFileNil: Bool {
  88. if case let .responseSerializationFailed(reason) = self, reason.isInputFileNil { return true }
  89. return false
  90. }
  91. var isInputFileReadFailed: Bool {
  92. if case let .responseSerializationFailed(reason) = self, reason.isInputFileReadFailed { return true }
  93. return false
  94. }
  95. var isStringSerializationFailed: Bool {
  96. if case let .responseSerializationFailed(reason) = self, reason.isStringSerializationFailed { return true }
  97. return false
  98. }
  99. var isJSONSerializationFailed: Bool {
  100. if case let .responseSerializationFailed(reason) = self, reason.isJSONSerializationFailed { return true }
  101. return false
  102. }
  103. var isPropertyListSerializationFailed: Bool {
  104. if case let .responseSerializationFailed(reason) = self, reason.isPropertyListSerializationFailed { return true }
  105. return false
  106. }
  107. // ValidationFailureReason
  108. var isMissingContentType: Bool {
  109. if case let .responseValidationFailed(reason) = self, reason.isMissingContentType { return true }
  110. return false
  111. }
  112. var isUnacceptableContentType: Bool {
  113. if case let .responseValidationFailed(reason) = self, reason.isUnacceptableContentType { return true }
  114. return false
  115. }
  116. var isUnacceptableStatusCode: Bool {
  117. if case let .responseValidationFailed(reason) = self, reason.isUnacceptableStatusCode { return true }
  118. return false
  119. }
  120. }
  121. // MARK: -
  122. extension AFError.MultipartEncodingFailureReason {
  123. var isBodyPartURLInvalid: Bool {
  124. if case .bodyPartURLInvalid = self { return true }
  125. return false
  126. }
  127. var isBodyPartFilenameInvalid: Bool {
  128. if case .bodyPartFilenameInvalid = self { return true }
  129. return false
  130. }
  131. var isBodyPartFileNotReachable: Bool {
  132. if case .bodyPartFileNotReachable = self { return true }
  133. return false
  134. }
  135. var isBodyPartFileNotReachableWithError: Bool {
  136. if case .bodyPartFileNotReachableWithError = self { return true }
  137. return false
  138. }
  139. var isBodyPartFileIsDirectory: Bool {
  140. if case .bodyPartFileIsDirectory = self { return true }
  141. return false
  142. }
  143. var isBodyPartFileSizeNotAvailable: Bool {
  144. if case .bodyPartFileSizeNotAvailable = self { return true }
  145. return false
  146. }
  147. var isBodyPartFileSizeQueryFailedWithError: Bool {
  148. if case .bodyPartFileSizeQueryFailedWithError = self { return true }
  149. return false
  150. }
  151. var isBodyPartInputStreamCreationFailed: Bool {
  152. if case .bodyPartInputStreamCreationFailed = self { return true }
  153. return false
  154. }
  155. var isOutputStreamCreationFailed: Bool {
  156. if case .outputStreamCreationFailed = self { return true }
  157. return false
  158. }
  159. var isOutputStreamFileAlreadyExists: Bool {
  160. if case .outputStreamFileAlreadyExists = self { return true }
  161. return false
  162. }
  163. var isOutputStreamURLInvalid: Bool {
  164. if case .outputStreamURLInvalid = self { return true }
  165. return false
  166. }
  167. var isOutputStreamWriteFailed: Bool {
  168. if case .outputStreamWriteFailed = self { return true }
  169. return false
  170. }
  171. var isInputStreamReadFailed: Bool {
  172. if case .inputStreamReadFailed = self { return true }
  173. return false
  174. }
  175. }
  176. // MARK: -
  177. extension AFError.SerializationFailureReason {
  178. var isInputDataNil: Bool {
  179. if case .inputDataNil = self { return true }
  180. return false
  181. }
  182. var isInputDataNilOrZeroLength: Bool {
  183. if case .inputDataNilOrZeroLength = self { return true }
  184. return false
  185. }
  186. var isInputFileNil: Bool {
  187. if case .inputFileNil = self { return true }
  188. return false
  189. }
  190. var isInputFileReadFailed: Bool {
  191. if case .inputFileReadFailed = self { return true }
  192. return false
  193. }
  194. var isStringSerializationFailed: Bool {
  195. if case .stringSerializationFailed = self { return true }
  196. return false
  197. }
  198. var isJSONSerializationFailed: Bool {
  199. if case .jsonSerializationFailed = self { return true }
  200. return false
  201. }
  202. var isPropertyListSerializationFailed: Bool {
  203. if case .propertyListSerializationFailed = self { return true }
  204. return false
  205. }
  206. }
  207. // MARK: -
  208. extension AFError.ValidationFailureReason {
  209. var isMissingContentType: Bool {
  210. if case .missingContentType = self { return true }
  211. return false
  212. }
  213. var isUnacceptableContentType: Bool {
  214. if case .unacceptableContentType = self { return true }
  215. return false
  216. }
  217. var isUnacceptableStatusCode: Bool {
  218. if case .unacceptableStatusCode = self { return true }
  219. return false
  220. }
  221. }