Program: 55195
Project: 55195
Buggy source:
@Ignore("String_Node_Str") @Test public void testSubscriptionsAtEachLevel() throws InvalidSubscriberException {
  AssetTree tree=new VanillaAssetTree().forTesting();
  Subscriber<TopologicalEvent> rootTopoSubscriber=createMock("String_Node_Str",Subscriber.class);
  Subscriber<MapEvent> rootMapSubscriber=createMock(Subscriber.class);
  Subscriber<String> rootNameSubscriber=createMock(Subscriber.class);
  TopicSubscriber<String,String> rootTopicSubscriber=createMock(TopicSubscriber.class);
  rootTopoSubscriber.onMessage(ExistingAssetEvent.of(null,"String_Node_Str"));
  rootTopoSubscriber.onMessage(ExistingAssetEvent.of("String_Node_Str","String_Node_Str"));
  rootTopoSubscriber.onMessage(AddedAssetEvent.of("String_Node_Str","String_Node_Str"));
  replay(rootTopoSubscriber,rootMapSubscriber,rootNameSubscriber,rootTopicSubscriber);
  tree.registerSubscriber("String_Node_Str",TopologicalEvent.class,rootTopoSubscriber);
  tree.registerSubscriber("String_Node_Str",MapEvent.class,rootMapSubscriber);
  tree.registerSubscriber("String_Node_Str",String.class,rootNameSubscriber);
  tree.registerTopicSubscriber("String_Node_Str",String.class,String.class,rootTopicSubscriber);
  Subscriber<TopologicalEvent> rootTopoSubscriber1=createMock("String_Node_Str",Subscriber.class);
  Subscriber<MapEvent> rootMapSubscriber1=createMock(Subscriber.class);
  Subscriber<String> rootNameSubscriber1=createMock(Subscriber.class);
  TopicSubscriber<String,String> rootTopicSubscriber1=createMock(TopicSubscriber.class);
  rootTopoSubscriber1.onMessage(ExistingAssetEvent.of("String_Node_Str","String_Node_Str"));
  replay(rootTopoSubscriber1,rootMapSubscriber1,rootNameSubscriber1,rootTopicSubscriber1);
  tree.registerSubscriber("String_Node_Str",TopologicalEvent.class,rootTopoSubscriber1);
  tree.registerSubscriber("String_Node_Str",MapEvent.class,rootMapSubscriber1);
  tree.registerSubscriber("String_Node_Str",String.class,rootNameSubscriber1);
  tree.registerTopicSubscriber("String_Node_Str",String.class,String.class,rootTopicSubscriber1);
  verify(rootTopoSubscriber,rootMapSubscriber,rootNameSubscriber,rootTopicSubscriber);
  verify(rootTopoSubscriber1,rootMapSubscriber1,rootNameSubscriber1,rootTopicSubscriber1);
  Subscriber<TopologicalEvent> rootTopoSubscriber0=createMock("String_Node_Str",Subscriber.class);
  rootTopoSubscriber0.onMessage(ExistingAssetEvent.of(null,"String_Node_Str"));
  rootTopoSubscriber0.onMessage(ExistingAssetEvent.of("String_Node_Str","String_Node_Str"));
  rootTopoSubscriber0.onMessage(ExistingAssetEvent.of("String_Node_Str","String_Node_Str"));
  replay(rootTopoSubscriber0);
  tree.registerSubscriber("String_Node_Str",TopologicalEvent.class,rootTopoSubscriber0);
  verify(rootTopoSubscriber0);
  reset(rootTopoSubscriber,rootTopoSubscriber0,rootTopoSubscriber1);
  rootTopoSubscriber.onMessage(RemovedAssetEvent.of("String_Node_Str","String_Node_Str"));
  rootTopoSubscriber0.onMessage(RemovedAssetEvent.of("String_Node_Str","String_Node_Str"));
  rootTopoSubscriber1.onMessage(RemovedAssetEvent.of("String_Node_Str","String_Node_Str"));
  replay(rootTopoSubscriber,rootTopoSubscriber0,rootTopoSubscriber1);
  tree.getAsset("String_Node_Str").removeChild("String_Node_Str");
  verify(rootTopoSubscriber,rootTopoSubscriber0,rootTopoSubscriber1);
}

Fixed version (ground truth):
@Ignore("String_Node_Str") @Test public void testSubscriptionsAtEachLevel() throws InvalidSubscriberException {
  AssetTree tree=new VanillaAssetTree().forTesting();
  Subscriber<TopologicalEvent> rootTopoSubscriber=createMock("String_Node_Str",Subscriber.class);
  Subscriber<MapEvent> rootMapSubscriber=createMock(Subscriber.class);
  Subscriber<String> rootNameSubscriber=createMock(Subscriber.class);
  TopicSubscriber<String,String> rootTopicSubscriber=createMock(TopicSubscriber.class);
  rootTopoSubscriber.onMessage(ExistingAssetEvent.of(null,"String_Node_Str",Collections.emptySet()));
  rootTopoSubscriber.onMessage(ExistingAssetEvent.of("String_Node_Str","String_Node_Str",Collections.emptySet()));
  rootTopoSubscriber.onMessage(AddedAssetEvent.of("String_Node_Str","String_Node_Str",Collections.emptySet()));
  replay(rootTopoSubscriber,rootMapSubscriber,rootNameSubscriber,rootTopicSubscriber);
  tree.registerSubscriber("String_Node_Str",TopologicalEvent.class,rootTopoSubscriber);
  tree.registerSubscriber("String_Node_Str",MapEvent.class,rootMapSubscriber);
  tree.registerSubscriber("String_Node_Str",String.class,rootNameSubscriber);
  tree.registerTopicSubscriber("String_Node_Str",String.class,String.class,rootTopicSubscriber);
  Subscriber<TopologicalEvent> rootTopoSubscriber1=createMock("String_Node_Str",Subscriber.class);
  Subscriber<MapEvent> rootMapSubscriber1=createMock(Subscriber.class);
  Subscriber<String> rootNameSubscriber1=createMock(Subscriber.class);
  TopicSubscriber<String,String> rootTopicSubscriber1=createMock(TopicSubscriber.class);
  rootTopoSubscriber1.onMessage(ExistingAssetEvent.of("String_Node_Str","String_Node_Str",Collections.emptySet()));
  replay(rootTopoSubscriber1,rootMapSubscriber1,rootNameSubscriber1,rootTopicSubscriber1);
  tree.registerSubscriber("String_Node_Str",TopologicalEvent.class,rootTopoSubscriber1);
  tree.registerSubscriber("String_Node_Str",MapEvent.class,rootMapSubscriber1);
  tree.registerSubscriber("String_Node_Str",String.class,rootNameSubscriber1);
  tree.registerTopicSubscriber("String_Node_Str",String.class,String.class,rootTopicSubscriber1);
  verify(rootTopoSubscriber,rootMapSubscriber,rootNameSubscriber,rootTopicSubscriber);
  verify(rootTopoSubscriber1,rootMapSubscriber1,rootNameSubscriber1,rootTopicSubscriber1);
  Subscriber<TopologicalEvent> rootTopoSubscriber0=createMock("String_Node_Str",Subscriber.class);
  rootTopoSubscriber0.onMessage(ExistingAssetEvent.of(null,"String_Node_Str",Collections.emptySet()));
  rootTopoSubscriber0.onMessage(ExistingAssetEvent.of("String_Node_Str","String_Node_Str",Collections.emptySet()));
  rootTopoSubscriber0.onMessage(ExistingAssetEvent.of("String_Node_Str","String_Node_Str",Collections.emptySet()));
  replay(rootTopoSubscriber0);
  tree.registerSubscriber("String_Node_Str",TopologicalEvent.class,rootTopoSubscriber0);
  verify(rootTopoSubscriber0);
  reset(rootTopoSubscriber,rootTopoSubscriber0,rootTopoSubscriber1);
  rootTopoSubscriber.onMessage(RemovedAssetEvent.of("String_Node_Str","String_Node_Str",Collections.emptySet()));
  rootTopoSubscriber0.onMessage(RemovedAssetEvent.of("String_Node_Str","String_Node_Str",Collections.emptySet()));
  rootTopoSubscriber1.onMessage(RemovedAssetEvent.of("String_Node_Str","String_Node_Str",Collections.emptySet()));
  replay(rootTopoSubscriber,rootTopoSubscriber0,rootTopoSubscriber1);
  tree.getAsset("String_Node_Str").removeChild("String_Node_Str");
  verify(rootTopoSubscriber,rootTopoSubscriber0,rootTopoSubscriber1);
}