test_class.declarator: oven
test_class.modifier: private
test_class.original_string: private Oven oven;
test_class.type: Oven
test_class.var_name: oven
test_class.file: recipe-java-runtime/src/test/java/ca/derekcormier/recipe/OvenTest.java
test_class.identifier: OvenTest
test_case.body: @Test
    public void testBake_callsDispatcherForInterleavedDomains() {
      Dispatcher spyA = setupDispatcherSpy("A");
      Dispatcher spyB = setupDispatcherSpy("B");
  
      Ingredient ingredient1 = new Ingredient("TestIngredient1", "A") {};
      Ingredient ingredient2 = new Ingredient("TestIngredient2", "B") {};
      Ingredient ingredient3 = new Ingredient("TestIngredient3", "A") {};
  
      oven.bake(Recipe.prepare(ingredient1, ingredient2, ingredient3));
  
      InOrder orderVerifier = Mockito.inOrder(spyA, spyB, spyA);
      orderVerifier.verify(spyA).dispatch(anyString());
      orderVerifier.verify(spyB).dispatch(anyString());
      orderVerifier.verify(spyA).dispatch(anyString());
    }
test_case.class_method_signature: OvenTest.testBake_callsDispatcherForInterleavedDomains()
test_case.full_signature: @Test public void testBake_callsDispatcherForInterleavedDomains()
test_case.identifier: testBake_callsDispatcherForInterleavedDomains
test_case.invocations: setupDispatcherSpy setupDispatcherSpy bake prepare inOrder dispatch verify anyString dispatch verify anyString dispatch verify anyString
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testBake_callsDispatcherForInterleavedDomains()
focal_class.declarator: defaultDispatcher
focal_class.modifier: private
focal_class.original_string: private Dispatcher defaultDispatcher;
focal_class.type: Dispatcher
focal_class.var_name: defaultDispatcher
focal_class.declarator: dispatchers = new HashMap<>()
focal_class.modifier: private
focal_class.original_string: private Map<String, Dispatcher> dispatchers = new HashMap<>();
focal_class.type: Map<String, Dispatcher>
focal_class.var_name: dispatchers
focal_class.declarator: objectMapper
focal_class.modifier: private
focal_class.original_string: private ObjectMapper objectMapper;
focal_class.type: ObjectMapper
focal_class.var_name: objectMapper
focal_class.declarator: subtypeResolver
focal_class.modifier: private
focal_class.original_string: private SubtypeResolver subtypeResolver;
focal_class.type: SubtypeResolver
focal_class.var_name: subtypeResolver
focal_class.file: recipe-java-runtime/src/main/java/ca/derekcormier/recipe/Oven.java
focal_class.identifier: Oven
focal_class.class_method_signature: Oven.bake(Recipe recipe)
focal_class.full_signature: public Cake bake(Recipe recipe)
focal_class.identifier: bake
focal_class.modifiers: public
focal_class.parameters: (Recipe recipe)
focal_class.return: Cake
focal_class.signature: Cake bake(Recipe recipe)
focal_class.class_method_signature: Oven._bake(Recipe recipe, Cake cake)
focal_class.full_signature: private Cake _bake(Recipe recipe, Cake cake)
focal_class.identifier: _bake
focal_class.modifiers: private
focal_class.parameters: (Recipe recipe, Cake cake)
focal_class.return: Cake
focal_class.signature: Cake _bake(Recipe recipe, Cake cake)
focal_class.class_method_signature: Oven.addDispatcher(String domain, Dispatcher dispatcher)
focal_class.full_signature: public void addDispatcher(String domain, Dispatcher dispatcher)
focal_class.identifier: addDispatcher
focal_class.modifiers: public
focal_class.parameters: (String domain, Dispatcher dispatcher)
focal_class.return: void
focal_class.signature: void addDispatcher(String domain, Dispatcher dispatcher)
focal_class.class_method_signature: Oven.setDefaultDispatcher(Dispatcher dispatcher)
focal_class.full_signature: public void setDefaultDispatcher(Dispatcher dispatcher)
focal_class.identifier: setDefaultDispatcher
focal_class.modifiers: public
focal_class.parameters: (Dispatcher dispatcher)
focal_class.return: void
focal_class.signature: void setDefaultDispatcher(Dispatcher dispatcher)
focal_class.class_method_signature: Oven._setDefaultDispatcher(Dispatcher dispatcher)
focal_class.full_signature: protected void _setDefaultDispatcher(Dispatcher dispatcher)
focal_class.identifier: _setDefaultDispatcher
focal_class.modifiers: protected
focal_class.parameters: (Dispatcher dispatcher)
focal_class.return: void
focal_class.signature: void _setDefaultDispatcher(Dispatcher dispatcher)
focal_class.class_method_signature: Oven.serializePayload(Recipe recipe, Cake cake)
focal_class.full_signature: private String serializePayload(Recipe recipe, Cake cake)
focal_class.identifier: serializePayload
focal_class.modifiers: private
focal_class.parameters: (Recipe recipe, Cake cake)
focal_class.return: String
focal_class.signature: String serializePayload(Recipe recipe, Cake cake)
focal_class.class_method_signature: Oven.deserializeCake(String json)
focal_class.full_signature: private Cake deserializeCake(String json)
focal_class.identifier: deserializeCake
focal_class.modifiers: private
focal_class.parameters: (String json)
focal_class.return: Cake
focal_class.signature: Cake deserializeCake(String json)
focal_class.class_method_signature: Oven.registerSubtypes(Recipe recipe)
focal_class.full_signature: private void registerSubtypes(Recipe recipe)
focal_class.identifier: registerSubtypes
focal_class.modifiers: private
focal_class.parameters: (Recipe recipe)
focal_class.return: void
focal_class.signature: void registerSubtypes(Recipe recipe)
focal_class.superclass: extends AbstractOven
focal_method.body: public Cake bake(Recipe recipe) {
      this.subtypeResolver = new StdSubtypeResolver();
  
      registerSubtypes(recipe);
  
      objectMapper = new ObjectMapper();
      objectMapper.setSubtypeResolver(subtypeResolver);
  
      Cake cake = _bake(recipe, createCake());
      return cake;
    }
focal_method.class_method_signature: Oven.bake(Recipe recipe)
focal_method.full_signature: public Cake bake(Recipe recipe)
focal_method.identifier: bake
focal_method.invocations: registerSubtypes setSubtypeResolver _bake createCake
focal_method.modifiers: public
focal_method.parameters: (Recipe recipe)
focal_method.return: Cake
focal_method.signature: Cake bake(Recipe recipe)