### Question:
JooqResearchDAO extends AbstractJooqDAO implements ResearchDAO { @Override public void insert(Research research) { Preconditions.checkNotNull(research, "research"); LOGGER.debug("Inserting research {}", research); context() .insertInto( RESEARCH, RESEARCH.ID, RESEARCH.TYPE, RESEARCH.LEVEL, RESEARCH.STARTED, RESEARCH.DONE, RESEARCH.PLANET_ID, RESEARCH.PLAYER_ID, RESEARCH.RESEARCH_COST_CRYSTALS, RESEARCH.RESEARCH_COST_GAS, RESEARCH.RESEARCH_COST_ENERGY ) .values( research.getId(), research.getType().getId(), research.getLevel(), research.getStarted(), research.getDone(), research.getPlanetId(), research.getPlayerId(), research.getResearchCost().getCrystals(), research.getResearchCost().getGas(), research.getResearchCost().getEnergy() ) .execute(); } @Inject  JooqResearchDAO(UnitOfWorkService unitOfWorkService); @Override void insert(Research research); @Override List<Research> findWithDone(long round); @Override void delete(Research research); @Override List<Research> findWithPlanetId(UUID planetId); @Override List<Research> findWithPlayerAndType(UUID playerId, TechnologyType type);  }### Answer:
@Test public void testInsert() throws Exception { Research research = new Research(UUID.fromString("8fe81af0-a992-11e4-bcd8-0800200c9a66"), TechnologyType.COMBUSTION_ENGINE, 1, 1, 2, BasicScenario.Player1.Planet2.PLANET.getId(), BasicScenario.Player1.PLAYER.getId(), new Resources(1, 2, 3)); sut.insert(research); List<Map<String, Object>> rows = select("SELECT * FROM research WHERE id = ?", research.getId()); assertThat(rows, hasSize(1)); verifyRow(rows.get(0), research); }