@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());
}