       # destroy callback 13
 
 asyncTest "new record lifecycle prototype callbacks fire in order", ->
-
   product = new @Product()
-
   product.set('foo', 'bar')
 
   product.save (err) =>

        deepEqual(product.callOrder, @Product.loadingCallOrder.concat(@Product.expectedCallOrder))
        QUnit.start()

asyncTest "throwing an error stops the storage operation", ->

  @Product.find 10, (err, product) =>
    product._push(105)
    product.set('foo', 'bar')
    product.on 'before saving', ->
      throw "Stop saving!"

    try
      product.save (err) =>

      equal "#{err}", "Stop saving!"
      deepEqual product.callOrder, @Product.loadingCallOrder.concat([0,1])
      QUnit.start()

test "throwing an error stops a storage operation for an existing record", ->
  product = new @Product()
  product.on 'before creating', -> throw "Stop saving!"
  try
    product.save (err) =>
      throw "Failed!"
  catch err
    ok product.isNew()
    equal "#{err}", "Stop saving!"
