@Test
  public void shouldHaveNoCycles() {
    Graph<String> graph = new Graph<>();
    packageDependencies.forEach(
        (key, set) -> {
          Node<String> node = graph.findOrCreateNode(key);
          set.stream()
              .filter(packageDependencies::containsKey)
              .forEach(target -> node.linkedTo(graph.findOrCreateNode(target)));
        });

    graph.topologicalSort();

    System.out.println("----------------------- dependencies:");
    System.out.println(graph.toString());
    System.out.println("-----------------------");
  }