Search code examples
javajdbcjooq

How to return a list of results in jOOQ Mocked Data


I'm using jOOQ's MockDataProvider to mock calls to the database. I've figured out how to return a single record using the information here: https://blog.jooq.org/2013/02/20/easy-mocking-of-your-database/

However, I want to return a list of results not just a single record for my query. How do I do that?

I can use the following (from the above link) to return a single result:

return new MockResult[] {
  new MockResult(1, result)
};

However, I cannot figure out how to add multiple results, all of the constructors for MockResult only take a single result. Any hints? Am I missing something obvious?

For example if I query all bicycles that are road bikes: SELECT * FROM bicycles WHERE type = "road"; how do I return a list of 10 bicycles instead of just one?


Solution

  • I can use the following (from the above link) to return a single result

    But that's already it. You return a single result with several records. The result you pass to that MockResult constructor could look like this:

    var result = ctx.newResult(BICYCLES.COL1, BICYCLES.COL2);
    result.add(ctx.newRecord(BICYCLES.COL1, BICYCLES.COL2).values(1, 2));
    result.add(ctx.newRecord(BICYCLES.COL1, BICYCLES.COL2).values(3, 4));
    ...