code: function (response, statusCode, statusText) {
      var adapter = this, responseFunction, isOk, shouldCopy, isInvalid;
      statusCode = statusCode || 200;
      statusText = statusText || HTTP_STATUS_MESSAGES[statusCode];
      isOk = Math.round(statusCode / 100) === 2;
      if (typeof response === 'function') {
        shouldCopy = true;
        responseFunction = bind(this, response);
      }
      else {
        isInvalid = response instanceof DS.InvalidError;
        if (isInvalid) {
          response = new DS.InvalidError(response.errors);
        }
        else {
          response = copy(response, true);
        }
        responseFunction = function () {
          return response;
        };
      }
      return new Ember.RSVP.Promise(function (resolve, reject) {
        var value, func, data;
        func = isOk ? resolve : reject;
        data = responseFunction();
        if (shouldCopy) {
          data = copy(data, true);
        }
        value = isOk ? data : (isInvalid ? data : {
          response:     data || {error: statusText},
          responseJSON: data || {error: statusText},
          status:       statusCode,
          statusText:   statusText
        });
        Ember.runInDebug(function () {
          console[isOk ? 'log' : 'error'](
            fmt('[dev-fixtures] Simulating %@ response:', isOk ? 'success' : 'error'),
            copy(response, true)
          );
        });
        if (adapter.get('simulateRemoteResponse')) {
          // Schedule with setTimeout
          later(null, func, value, adapter.get('latency'));
        }
        else {
          // Asynchronous, but at the of the run-loop with zero latency
          schedule('actions', null, func, value);
        }
      }, "DS: DevFixtureAdapter#simulateRemoteCall");
    }
docs: Better method for simulating a remote call
  
  @method simulateRemoteCall
  @param {Object|Function} response
  @param {number} [statusCode=200]
  @param {string} [statusText]
  @return {Promise}