Skip to content

Commit 4a3b5ba

Browse files
author
Zoltan Foley-Fisher
committed
<rdar://problem/17541074> [SWIFT] Should XCTAssertEqual and friends take optional/nullable types?
Now comparing optionals in XCTAssertEqual/XCTAssertNotEqual Swift SVN r30516
1 parent 9d06ac8 commit 4a3b5ba

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

stdlib/public/SDK/XCTest/XCTest.swift

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ public func XCTAssertFalse(@autoclosure expression: () -> BooleanType, _ message
212212
}
213213
}
214214

215-
public func XCTAssertEqual<T : Equatable>(@autoclosure expression1: () -> T, @autoclosure _ expression2: () -> T, _ message: String = "", file: String = __FILE__, line: UInt = __LINE__) -> Void {
215+
public func XCTAssertEqual<T : Equatable>(@autoclosure expression1: () -> T?, @autoclosure _ expression2: () -> T?, _ message: String = "", file: String = __FILE__, line: UInt = __LINE__) -> Void {
216216
let assertionType = _XCTAssertionType.Equal
217217

218218
// evaluate each expression exactly once
@@ -226,15 +226,12 @@ public func XCTAssertEqual<T : Equatable>(@autoclosure expression1: () -> T, @au
226226

227227
switch result {
228228
case .Success:
229-
let expressionValue1 = expressionValue1Optional!
230-
let expressionValue2 = expressionValue2Optional!
231-
232-
if expressionValue1 != expressionValue2 {
229+
if expressionValue1Optional != expressionValue2Optional {
233230
// TODO: @auto_string expression1
234231
// TODO: @auto_string expression2
235232

236-
let expressionValueStr1 = "\(expressionValue1)"
237-
let expressionValueStr2 = "\(expressionValue2)"
233+
let expressionValueStr1 = "\(expressionValue1Optional)"
234+
let expressionValueStr2 = "\(expressionValue2Optional)"
238235

239236
_XCTRegisterFailure(true, _XCTFailureDescription(assertionType, 0, expressionValueStr1 as NSString, expressionValueStr2 as NSString), message, file, line)
240237
}
@@ -393,7 +390,7 @@ public func XCTAssertEqual<T, U : Equatable>(@autoclosure expression1: () -> [T:
393390
}
394391
}
395392

396-
public func XCTAssertNotEqual<T : Equatable>(@autoclosure expression1: () -> T, @autoclosure _ expression2: () -> T, _ message: String = "", file: String = __FILE__, line: UInt = __LINE__) -> Void {
393+
public func XCTAssertNotEqual<T : Equatable>(@autoclosure expression1: () -> T?, @autoclosure _ expression2: () -> T?, _ message: String = "", file: String = __FILE__, line: UInt = __LINE__) -> Void {
397394
let assertionType = _XCTAssertionType.NotEqual
398395

399396
// evaluate each expression exactly once
@@ -407,15 +404,12 @@ public func XCTAssertNotEqual<T : Equatable>(@autoclosure expression1: () -> T,
407404

408405
switch result {
409406
case .Success:
410-
let expressionValue1 = expressionValue1Optional!
411-
let expressionValue2 = expressionValue2Optional!
412-
413-
if expressionValue1 == expressionValue2 {
407+
if expressionValue1Optional == expressionValue2Optional {
414408
// TODO: @auto_string expression1
415409
// TODO: @auto_string expression2
416410

417-
let expressionValueStr1 = "\(expressionValue1)"
418-
let expressionValueStr2 = "\(expressionValue2)"
411+
let expressionValueStr1 = "\(expressionValue1Optional)"
412+
let expressionValueStr2 = "\(expressionValue2Optional)"
419413

420414
_XCTRegisterFailure(true, _XCTFailureDescription(assertionType, 0, expressionValueStr1 as NSString, expressionValueStr2 as NSString), message, file, line)
421415
}

0 commit comments

Comments
 (0)