### Question:
TimeoutCommandDecorator extends AbstractDecoratorCommand<R> { @Override public Optional<Duration> getTimeout() { return Optional.of(timeout); } TimeoutCommandDecorator(final CanonCommand<R> delegate, final Duration timeout);  TimeoutCommandDecorator(final FakeClassArgument fake, final TimeoutCommandDecorator<R> toCopy); @Override Optional<Duration> getTimeout(); @Override CanonCommand<R> setTimeout(final Duration timeout);  }### Answer:
@Test void getTimeout() { final TimeoutCommandDecorator<String> decorator = new TimeoutCommandDecorator<>(command, Duration.ofSeconds(5)); Assertions.assertTrue(decorator.getTimeout().isPresent()); Assertions.assertEquals(Duration.ofSeconds(5), decorator.getTimeout().get()); }