             expectation.fulfill()
         })
         
-        dispatch_delay(0.25, dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0)) {
-            promise1.fulfill(1)
-        }
+        promise1.fulfill(1)
         
         self.waitForExpectationsWithTimeout(1.0) { (error: NSError!) -> () in
         }

        
        let promiseA = promise.catch { (reason: Error) -> () in
            isRejected = true
        }
        
        promise.fulfill(1)
        
        let promiseB = promise.when { (value: Int) -> () in
            isRejected = false
        }
        
        XCTAssertTrue(isRejected, "When rejected, a promise must not transtion to any other state")
    }
    
    // 2.1.3.2 - must have a reason, which must not change
    
    func testRejectedMustHaveAReasonWhichMustNotChange() {
        let promise = Promise<Int>()
        
        promise.reject(ExpectedRejectionError())
        
        let promiseA = promise.catch { (reason: Error) -> () in
            XCTAssertTrue(reason is ExpectedRejectionError, "When rejected, a promise must have a reason, which must not change")
        }
        
        promise.reject(UnexpectedRejectionError())
        
        let promiseB = promise.catch { (reason: Error) -> () in
            XCTAssertTrue(reason is ExpectedRejectionError, "When rejected, a promise must have a reason, which must not change")
        }
    }
    
    // 2.2.1.1 - If onFulfilled is not a function, it must be ignored

                expectation.fulfill()
            })
        
        promise1.fulfill(1)
        
        self.waitForExpectationsWithTimeout(1.0) { (error: NSError!) -> () in
        }
