 		}
 	}
 
-	func test_ShouldPerforlBlockAfterInvalidDelay() {
+	func test_ShouldPerformBlockAfterInvalidDelay() {
 		let startDate = NSDate()
 		let expectation = expectationWithDescription("execute block after delay")
 		self.performBlockAfterDelay(-2) {
+			XCTAssert(NSThread.isMainThread() == true)
 			XCTAssert(startDate.isOlderOrEqualThanSecondInterval(3) == false)
 			XCTAssert(startDate.isOlderOrEqualThanSecondInterval(2) == false)
 			XCTAssert(startDate.isOlderOrEqualThanSecondInterval(1) == false)

			XCTAssert(true, "didn't crash")
		}
	}

}

// MARK: - Perform Block After Delay With Completion Block

/**
* Performs a code block after a given delay and call a completion block when it's done.
*
* @param delay The amount of time (measured in seconds) to wait before beginning the animations. Specify a value of 0 to begin the animations immediately.
* @param block A block object containing the code to execute. This block takes no parameters and has no return value.
* @param completionBlock A block object containing the code to execute. This block takes no parameters and has no return value. It will be called after the main block has been executed.
*/
//- (void)performBlockAfterDelay:(NSTimeInterval)delay block:(nullable void (^)(void))block completion:(nullable void (^)(void))completionBlock;

extension NSObjectTests {

}

// MARK: - Perform Block With Completion Block

/**
* Performs a code block and call a completion block when it's done.
*
* @param block A block object containing the code to execute. This block takes no parameters and has no return value.
* @param completionBlock A block object containing the code to execute. This block takes no parameters and has no return value. It will be called after the main block has been executed.
*/
//- (void)performBlock:(nullable void (^)(void))block completion:(nullable void (^)(void))completionBlock;

extension NSObjectTests {

}

		}
	}

	func test_ShouldPerformBlockAfterZeroDelay() {
		let startDate = NSDate()
		let expectation = expectationWithDescription("execute block after delay")
		self.performBlockAfterDelay(0) {
			XCTAssert(NSThread.isMainThread() == true)
			XCTAssert(startDate.stringValue() == NSDate().stringValue())
			expectation.fulfill()
		}
