test_class.file: exercise_010_Lifecycle_monitoring/src/test/java/com/lightbend/training/coffeehouse/CoffeeHouseTest.java
test_class.identifier: CoffeeHouseTest
test_class.superclass: extends BaseAkkaTestCase
test_case.body: @Test
      public void onTerminationOfGuestCoffeeHouseShouldRemoveGuestFromBookkeeper() {
          new JavaTestKit(system) {{
              ActorRef coffeeHouse = system.actorOf(CoffeeHouse.props(1), "guest-removed");
              coffeeHouse.tell(new CoffeeHouse.CreateGuest(new Coffee.Akkaccino()), ActorRef.noSender());
              ActorRef guest = expectActor(this, "/user/guest-removed/$*");
              interceptDebugLogMessage(this, ".*[Rr]emoved.*", 1, () -> {
                  coffeeHouse.tell(new CoffeeHouse.ApproveCoffee(new Coffee.Akkaccino(), guest), ActorRef.noSender());
              });
          }};
      }
test_case.class_method_signature: CoffeeHouseTest.onTerminationOfGuestCoffeeHouseShouldRemoveGuestFromBookkeeper()
test_case.full_signature: @Test public void onTerminationOfGuestCoffeeHouseShouldRemoveGuestFromBookkeeper()
test_case.identifier: onTerminationOfGuestCoffeeHouseShouldRemoveGuestFromBookkeeper
test_case.invocations: actorOf props tell noSender expectActor interceptDebugLogMessage tell noSender
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void onTerminationOfGuestCoffeeHouseShouldRemoveGuestFromBookkeeper()
focal_class.declarator: baristaPrepareCoffeeDuration =
              Duration.create(
                      context().system().settings().config().getDuration(
                              "coffee-house.barista.prepare-coffee-duration", MILLISECONDS), MILLISECONDS)
focal_class.modifier: private final
focal_class.original_string: private final FiniteDuration baristaPrepareCoffeeDuration =
              Duration.create(
                      context().system().settings().config().getDuration(
                              "coffee-house.barista.prepare-coffee-duration", MILLISECONDS), MILLISECONDS);
focal_class.type: FiniteDuration
focal_class.var_name: baristaPrepareCoffeeDuration
focal_class.declarator: guestFinishCoffeeDuration =
              Duration.create(
                      context().system().settings().config().getDuration(
                              "coffee-house.guest.finish-coffee-duration", MILLISECONDS), MILLISECONDS)
focal_class.modifier: private final
focal_class.original_string: private final FiniteDuration guestFinishCoffeeDuration =
              Duration.create(
                      context().system().settings().config().getDuration(
                              "coffee-house.guest.finish-coffee-duration", MILLISECONDS), MILLISECONDS);
focal_class.type: FiniteDuration
focal_class.var_name: guestFinishCoffeeDuration
focal_class.declarator: barista =
              createBarista()
focal_class.modifier: private final
focal_class.original_string: private final ActorRef barista =
              createBarista();
focal_class.type: ActorRef
focal_class.var_name: barista
focal_class.declarator: waiter =
              createWaiter()
focal_class.modifier: private final
focal_class.original_string: private final ActorRef waiter =
              createWaiter();
focal_class.type: ActorRef
focal_class.var_name: waiter
focal_class.declarator: guestCaffeineBookkeeper = new HashMap<>()
focal_class.modifier: private final
focal_class.original_string: private final Map<ActorRef, Integer> guestCaffeineBookkeeper = new HashMap<>();
focal_class.type: Map<ActorRef, Integer>
focal_class.var_name: guestCaffeineBookkeeper
focal_class.declarator: caffeineLimit
focal_class.modifier: private final
focal_class.original_string: private final int caffeineLimit;
focal_class.type: int
focal_class.var_name: caffeineLimit
focal_class.file: exercise_010_Lifecycle_monitoring/src/main/java/com/lightbend/training/coffeehouse/CoffeeHouse.java
focal_class.identifier: CoffeeHouse
focal_class.class_method_signature: CoffeeHouse.CoffeeHouse(int caffeineLimit)
focal_class.full_signature: public  CoffeeHouse(int caffeineLimit)
focal_class.identifier: CoffeeHouse
focal_class.modifiers: public
focal_class.parameters: (int caffeineLimit)
focal_class.signature:  CoffeeHouse(int caffeineLimit)
focal_class.class_method_signature: CoffeeHouse.createReceive()
focal_class.full_signature: @Override public Receive createReceive()
focal_class.identifier: createReceive
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: Receive
focal_class.signature: Receive createReceive()
focal_class.class_method_signature: CoffeeHouse.props(int caffeineLimit)
focal_class.full_signature: public static Props props(int caffeineLimit)
focal_class.identifier: props
focal_class.modifiers: public static
focal_class.parameters: (int caffeineLimit)
focal_class.return: Props
focal_class.signature: Props props(int caffeineLimit)
focal_class.class_method_signature: CoffeeHouse.coffeeApproved(ApproveCoffee approveCoffee)
focal_class.full_signature: private boolean coffeeApproved(ApproveCoffee approveCoffee)
focal_class.identifier: coffeeApproved
focal_class.modifiers: private
focal_class.parameters: (ApproveCoffee approveCoffee)
focal_class.return: boolean
focal_class.signature: boolean coffeeApproved(ApproveCoffee approveCoffee)
focal_class.class_method_signature: CoffeeHouse.addGuestToBookkeeper(ActorRef guest)
focal_class.full_signature: private void addGuestToBookkeeper(ActorRef guest)
focal_class.identifier: addGuestToBookkeeper
focal_class.modifiers: private
focal_class.parameters: (ActorRef guest)
focal_class.return: void
focal_class.signature: void addGuestToBookkeeper(ActorRef guest)
focal_class.class_method_signature: CoffeeHouse.createBarista()
focal_class.full_signature: protected ActorRef createBarista()
focal_class.identifier: createBarista
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: ActorRef
focal_class.signature: ActorRef createBarista()
focal_class.class_method_signature: CoffeeHouse.createWaiter()
focal_class.full_signature: protected ActorRef createWaiter()
focal_class.identifier: createWaiter
focal_class.modifiers: protected
focal_class.parameters: ()
focal_class.return: ActorRef
focal_class.signature: ActorRef createWaiter()
focal_class.class_method_signature: CoffeeHouse.createGuest(Coffee favoriteCoffee)
focal_class.full_signature: protected ActorRef createGuest(Coffee favoriteCoffee)
focal_class.identifier: createGuest
focal_class.modifiers: protected
focal_class.parameters: (Coffee favoriteCoffee)
focal_class.return: ActorRef
focal_class.signature: ActorRef createGuest(Coffee favoriteCoffee)
focal_class.superclass: extends AbstractLoggingActor
focal_method.body: public static Props props(int caffeineLimit) {
          return Props.create(CoffeeHouse.class, () -> new CoffeeHouse(caffeineLimit));
      }
focal_method.class_method_signature: CoffeeHouse.props(int caffeineLimit)
focal_method.full_signature: public static Props props(int caffeineLimit)
focal_method.identifier: props
focal_method.invocations: create
focal_method.modifiers: public static
focal_method.parameters: (int caffeineLimit)
focal_method.return: Props
focal_method.signature: Props props(int caffeineLimit)