function assertMultiIndexRangeScanResult(
    idKeyRange, nameKeyRange, expectedRowIds) {
  var table = schema.table('tableA');
  var idIndex = table['id'].getIndex();
  var idRangeScanStep = new lf.proc.IndexRangeScanStep(
      lf.Global.get(), idIndex,
      new lf.testing.proc.MockKeyRangeCalculator([idKeyRange]), false);

  var nameIndex = table['name'].getIndex();
  var nameRangeScanStep = new lf.proc.IndexRangeScanStep(
      lf.Global.get(), nameIndex,
      new lf.testing.proc.MockKeyRangeCalculator([nameKeyRange]), false);

  var step = new lf.proc.MultiIndexRangeScanStep();
  step.addChild(idRangeScanStep);
  step.addChild(nameRangeScanStep);

  return step.exec().then(
      function(relations) {
        assertEquals(1, relations.length);
        var relation = relations[0];
        var actualRowIds = relation.entries.map(function(entry) {
          return entry.row.id();
        });
        assertSameElements(expectedRowIds, actualRowIds);
      });
}
Asserts that MultiIndexRangeScanStep#exec() correctly combines the results of
its children IndexRangeScanStep instances.
@param {!lf.index.SingleKeyRange} idKeyRange
@param {!lf.index.SingleKeyRange} nameKeyRange
@param {!Array<number>} expectedRowIds
@return {!IThenable}