@Test
  public void storeProjectAndRetrieveAllRelationshipsInOneGo() throws Exception {
    final ProjectVersionRef p =
        new SimpleProjectVersionRef("org.apache.maven", "maven-core", "3.0.3");

    final EProjectDirectRelationships.Builder prb =
        new EProjectDirectRelationships.Builder(sourceUri, p);

    final ProjectVersionRef parent =
        new SimpleProjectVersionRef("org.apache.maven", "maven", "3.0.3");

    int idx = 0;
    int pidx = 0;
    final DependencyRelationship papi =
        new SimpleDependencyRelationship(
            sourceUri,
            p,
            new SimpleArtifactRef(
                "org.apache.maven", "maven-plugin-api", "3.0.3", null, null, false),
            DependencyScope.compile,
            idx++,
            false,
            false);
    final DependencyRelationship art =
        new SimpleDependencyRelationship(
            sourceUri,
            p,
            new SimpleArtifactRef("org.apache.maven", "maven-artifact", "3.0.3", null, null, false),
            DependencyScope.compile,
            idx++,
            false,
            false);
    final PluginRelationship jarp =
        new SimplePluginRelationship(
            sourceUri,
            p,
            new SimpleProjectVersionRef("org.apache.maven.plugins", "maven-jar-plugin", "2.2"),
            pidx++,
            false,
            false);
    final PluginRelationship comp =
        new SimplePluginRelationship(
            sourceUri,
            p,
            new SimpleProjectVersionRef(
                "org.apache.maven.plugins", "maven-compiler-plugin", "2.3.2"),
            pidx++,
            false,
            false);
    final ExtensionRelationship wag =
        new SimpleExtensionRelationship(
            sourceUri,
            p,
            new SimpleProjectVersionRef("org.apache.maven.wagon", "wagon-provider-webdav", "1.0"),
            0,
            false);

    prb.withParent(parent);
    prb.withDependencies(papi, art);
    prb.withPlugins(jarp, comp);
    prb.withExtensions(wag);

    final EProjectDirectRelationships rels = prb.build();

    assertThat(rels.getAllRelationships().size(), equalTo(6));

    graph.storeRelationships(rels.getExactAllRelationships());

    final Set<ProjectRelationship<?, ?>> resulting =
        graph.findDirectRelationshipsFrom(rels.getProjectRef(), false, RelationshipType.values());

    final Set<ProjectVersionRef> targets = RelationshipUtils.targets(resulting);

    assertThat(targets.size(), equalTo(6));
    assertThat(targets.contains(parent), equalTo(true));
    assertThat(targets.contains(papi.getTarget()), equalTo(true));
    assertThat(targets.contains(art.getTarget()), equalTo(true));
    assertThat(targets.contains(jarp.getTarget()), equalTo(true));
    assertThat(targets.contains(comp.getTarget()), equalTo(true));
    assertThat(targets.contains(wag.getTarget()), equalTo(true));
  }