@Test
  public void storeProjectWithOneExtensionAndRetrieveAsUser() throws Exception {
    final ProjectVersionRef project =
        new SimpleProjectVersionRef("org.apache.maven", "maven-core", "3.0.3");
    final ProjectVersionRef ext =
        new SimpleProjectVersionRef("org.apache.maven.wagon", "wagon-provider-webdav", "2.0");

    final EProjectDirectRelationships rels =
        new EProjectDirectRelationships.Builder(sourceUri, project)
            .withExtension(ext, false)
            .build();

    graph.storeRelationships(rels.getExactAllRelationships());

    final Set<ProjectRelationship<?, ?>> exts =
        graph.findDirectRelationshipsTo(ext, false, RelationshipType.EXTENSION);

    assertThat(exts.size(), equalTo(1));
    assertThat(exts.iterator().next().getDeclaring(), equalTo(project));
  }
  @Test
  public void storeProjectWithOnePluginAndVerifyAnyUsageRelationship() throws Exception {
    final ProjectVersionRef project =
        new SimpleProjectVersionRef("org.apache.maven", "maven-core", "3.0.3");
    final ProjectVersionRef plugin =
        new SimpleProjectVersionRef("org.apache.maven.plugins", "maven-compiler-plugin", "2.3.2");

    final EProjectDirectRelationships rels =
        new EProjectDirectRelationships.Builder(sourceUri, project)
            .withPlugin(plugin, false, false)
            .build();

    graph.storeRelationships(rels.getExactAllRelationships());

    final Set<ProjectRelationship<?, ?>> storedRels =
        graph.findDirectRelationshipsTo(plugin, false, RelationshipType.PLUGIN);

    assertThat(storedRels.size(), equalTo(1));

    final ProjectVersionRef declaring = storedRels.iterator().next().getDeclaring();

    assertThat(declaring, equalTo(project));
  }
  @Test
  public void storeProjectWithOneDependencyAndRetrieveAsDependent() throws Exception {
    final EProjectDirectRelationships rels =
        new EProjectDirectRelationships.Builder(
                sourceUri, new SimpleProjectVersionRef("org.apache.maven", "maven-core", "3.0.3"))
            .withDependency(
                new SimpleProjectVersionRef("org.apache.maven", "maven-artifact", "3.0.3"),
                null,
                null,
                null,
                false,
                false)
            .build();

    graph.storeRelationships(rels.getExactAllRelationships());

    final Set<ProjectRelationship<?, ?>> dependents =
        graph.findDirectRelationshipsTo(
            rels.getDependencies().get(0).getTarget(), false, RelationshipType.DEPENDENCY);

    assertThat(dependents, notNullValue());
    assertThat(dependents.size(), equalTo(1));
    assertThat(dependents.iterator().next().getDeclaring(), equalTo(rels.getProjectRef()));
  }