@Test
  public void shouldNotRemoveResolvedEntitiesForSimpleTopology() {
    setupSimpleTopology();

    assertEntities(
        asSet(entityB, entityC, entityD),
        relationshipResolver.removeUnresolvedEntities(asSet(entityD, entityB, entityC)));
    assertEntities(
        asSet(entityA, entityB, entityC, entityD),
        relationshipResolver.removeUnresolvedEntities(asSet(entityA, entityD, entityB, entityC)));
  }
  @Test
  public void shouldRemoveUnresolvedEntitiesForComplexTopologyWithLoop() {
    setupComplexTopologyWithLoop();

    assertEntities(
        asSet(entityF),
        relationshipResolver.removeUnresolvedEntities(
            asSet(entityA, entityB, entityC, entityD, entityF)));
    assertEntities(
        this.<Entity>asSet(),
        relationshipResolver.removeUnresolvedEntities(asSet(entityA, entityC, entityE, entityD)));
    assertEntities(
        this.<Entity>asSet(),
        relationshipResolver.removeUnresolvedEntities(
            asSet(entityA, entityC, entityD, entityE, entityB)));
  }
 @Before
 public void setUp() throws Exception {
   relationshipResolver = new RelationshipResolver();
   relationshipResolver.setAllEntities(allEntities);
   when(allEntities.retrieveByClassName(anyString())).thenReturn(null);
 }