function testSinglePlan_Update() {
  assertEquals(0, cache.getCount());

  var newTitle = 'Quantum Physicist';
  var queryTask = new lf.proc.UserQueryTask(
      hr.db.getGlobal(), [getSampleQuery()]);
  return queryTask.exec().then(function() {
    assertEquals(ROW_COUNT, cache.getCount());
    var query = /** @type {!lf.query.UpdateBuilder} */ (
        db.update(j).set(j.title, newTitle)).getTaskItem();
    var updateQueryTask = new lf.proc.UserQueryTask(
        hr.db.getGlobal(), [query]);
    return updateQueryTask.exec();
  }).then(function() {
    return lf.testing.util.selectAll(global, j);
  }).then(function(results) {
    assertEquals(ROW_COUNT, results.length);
    assertEquals(ROW_COUNT, cache.getCount());
    for (var i = 0; i < ROW_COUNT; ++i) {
      assertEquals(newTitle, results[i].payload()[j.title.getName()]);
      var id = rows[i].id();
      assertEquals(newTitle, cache.get(id).payload()[j.title.getName()]);
    }
  });
}
Tests that an UPDATE query does change the record in the database and cache.
@return {!IThenable}