@PublicAPI(usage = ACCESS)
    public JavaClasses importUrl(URL url) {
        return importUrls(singletonList(url));
    }
@Test
    public void creates_relations_between_classes_and_interfaces() {
        JavaClasses classes = new ClassFileImporter().importUrl(getClass().getResource("testexamples/classhierarchyimport"));
        JavaClass baseClass = classes.get(BaseClass.class);
        JavaClass otherInterface = classes.get(OtherInterface.class);
        JavaClass subclass = classes.get(Subclass.class);
        JavaClass subinterface = classes.get(Subinterface.class);
        JavaClass otherSubclass = classes.get(OtherSubclass.class);
        JavaClass parentInterface = classes.get(ParentInterface.class);
        JavaClass grandParentInterface = classes.get(GrandParentInterface.class);
        JavaClass someCollection = classes.get(SomeCollection.class);
        JavaClass collectionInterface = classes.get(CollectionInterface.class);

        assertThat(baseClass.getRawInterfaces()).containsOnly(otherInterface);
        assertThat(baseClass.getAllRawInterfaces()).containsOnly(otherInterface, grandParentInterface);
        assertThat(subclass.getRawInterfaces()).containsOnly(subinterface);
        assertThat(subclass.getAllRawInterfaces()).containsOnly(
                subinterface, otherInterface, parentInterface, grandParentInterface);
        assertThat(otherSubclass.getRawInterfaces()).containsOnly(parentInterface);
        assertThat(otherSubclass.getAllRawInterfaces()).containsOnly(parentInterface, grandParentInterface, otherInterface);
        assertThat(someCollection.getRawInterfaces()).containsOnly(collectionInterface, otherInterface, subinterface);
        assertThat(someCollection.getAllRawInterfaces()).extractingResultOf("reflect").containsOnly(
                CollectionInterface.class, OtherInterface.class, Subinterface.class, ParentInterface.class,
                GrandParentInterface.class, Collection.class, Iterable.class);
    }