### Question:
App { public static void main(String[] args) { var executeService = Executors.newFixedThreadPool(10); var lock = new ReaderWriterLock(); for (var i = 0; i < 5; i++) { var writingTime = ThreadLocalRandom.current().nextLong(5000); executeService.submit(new Writer("Writer " + i, lock.writeLock(), writingTime)); } LOGGER.info("Writers added..."); for (var i = 0; i < 5; i++) { var readingTime = ThreadLocalRandom.current().nextLong(10); executeService.submit(new Reader("Reader " + i, lock.readLock(), readingTime)); } LOGGER.info("Readers added..."); try { Thread.sleep(5000L); } catch (InterruptedException e) { LOGGER.error("Error sleeping before adding more readers", e); Thread.currentThread().interrupt(); } for (var i = 6; i < 10; i++) { var readingTime = ThreadLocalRandom.current().nextLong(10); executeService.submit(new Reader("Reader " + i, lock.readLock(), readingTime)); } LOGGER.info("More readers added..."); executeService.shutdown(); try { executeService.awaitTermination(5, TimeUnit.SECONDS); } catch (InterruptedException e) { LOGGER.error("Error waiting for ExecutorService shutdown", e); Thread.currentThread().interrupt(); } }  static void main(String[] args);  }### Answer:
@Test void shouldExecuteWithoutException() { assertDoesNotThrow(() -> App.main(new String[]{})); }