### Question:
JooqDetectedFlightDAO extends AbstractJooqDAO implements DetectedFlightDAO { @Override public List<DetectedFlightWithSender> findWithPlayer(UUID playerId) { Preconditions.checkNotNull(playerId, "playerId"); LOGGER.debug("Finding detected flights from player {}", playerId); Result<Record> result = context().select().from(DETECTED_FLIGHT) .join(FLIGHT).on(FLIGHT.ID.eq(DETECTED_FLIGHT.FLIGHT_ID)) .join(PLAYER).on(PLAYER.ID.eq(FLIGHT.PLAYER_ID)) .where(DETECTED_FLIGHT.PLAYER_ID.eq(playerId)) .fetch(); return result.stream().map(this::fromRecord).collect(Collectors.toList()); } @Inject  JooqDetectedFlightDAO(UnitOfWorkService unitOfWorkService); @Override void insert(DetectedFlight detectedFlight); @Override List<DetectedFlightWithSender> findWithPlayer(UUID playerId); @Override void delete(UUID id);  }### Answer:
@Test public void testFindWithPlayer() throws Exception { DetectedFlight expected = FlightScenario.Player1.DETECTED_FLIGHT; List<DetectedFlightWithSender> actual = sut.findWithPlayer(expected.getPlayerId()); assertThat(actual, hasSize(1)); Flight flight = FlightScenario.Player1.FLIGHT_1.withShips(Ships.EMPTY); assertThat(actual.get(0), is(new DetectedFlightWithSender(expected, flight, BasicScenario.Player1.PLAYER))); }