### Question:
AbstractService implements Service { @Override public final boolean start() throws ServiceException { try { return startAsync().join(); } catch (CompletionException e) { throw wrapServiceException(e.getCause()); } }  @Override CompletableFuture<Boolean> startAsync(); @Override CompletableFuture<Boolean> startAsync(PiccoloContext context); @Override CompletableFuture<Boolean> stopAsync(); final CompletableFuture<Boolean> stopAsyncWithCallback(Callback callback); @Override final boolean start(); @Override boolean start(PiccoloContext context); @Override final boolean stop(); @Override boolean isRunning();  }### Answer:
@DisplayName("test_start") @Test void testStart() { assertTrue(service.start()); }
@Execution(value = ExecutionMode.CONCURRENT) @DisplayName("test_start_WithConcurrent") @Test @ResourceLock(value = "duplicateStart", mode = READ_WRITE) void startWithConcurrent() { assertTrue(globalService.start()); }
@Execution(value = ExecutionMode.CONCURRENT) @DisplayName("test_start_WithConcurrentDuplicate") @Test @ResourceLock(value = "duplicateStart", mode = READ) void startWithConcurrentDuplicate() { try { globalService.start(); fail(); } catch (ServiceException e) { assertEquals(DuplicateStartServiceException.class, e.getClass()); } }