@Override
  public void smoke() {
    tobacco.smoke(this);
  }
@Test
  void testSmokeEveryThingThroughConstructor() {

    List<Tobacco> tobaccos = List.of(
        new OldTobyTobacco(),
        new RivendellTobacco(),
        new SecondBreakfastTobacco()
    );

    // Verify if the wizard is smoking the correct tobacco ...
    tobaccos.forEach(tobacco -> {
      final GuiceWizard guiceWizard = new GuiceWizard(tobacco);
      guiceWizard.smoke();
      String lastMessage = appender.getLastMessage();
      assertEquals("GuiceWizard smoking " + tobacco.getClass().getSimpleName(), lastMessage);
    });

    // ... and nothing else is happening.
    assertEquals(tobaccos.size(), appender.getLogSize());
  }