public void testGetPackageFromType() {
    // Set up
    final String type = "com.foo.Bar";

    // Invoke
    final String pkg = TypeLocationServiceImpl.getPackageFromType(type);

    // Check
    assertEquals("com.foo", pkg);
  }
  public void testGetAllPackages() {
    // Set up
    final String leafPackage = "com.foo.bar";

    // Invoke
    final Set<String> allPackages = TypeLocationServiceImpl.getAllPackages(leafPackage);

    // Check
    assertEquals(3, allPackages.size());
    assertTrue(allPackages.contains("com"));
    assertTrue(allPackages.contains("com.foo"));
    assertTrue(allPackages.contains("com.foo.bar"));
  }
  public void testGetLowestCommonPackageWhenOneExists() {
    // Set up
    final String type1 = "com.foo.bar.A";
    final String type2 = "com.foo.baz.B";
    final Map<String, Collection<String>> typesByPackage =
        new LinkedHashMap<String, Collection<String>>();
    typesByPackage.put("com", Arrays.asList(type1, type2));
    typesByPackage.put("com.foo", Arrays.asList(type1, type2));
    typesByPackage.put("com.foo.bar", Arrays.asList(type1));
    typesByPackage.put("com.foo.baz", Arrays.asList(type2));

    // Invoke
    final String lowestCommonPackage =
        TypeLocationServiceImpl.getLowestCommonPackage(2, typesByPackage);

    // Check
    assertEquals("com.foo", lowestCommonPackage);
  }