abstract public <T extends ComponentRoot> T get(Class<T> providerId);
@Test
    public void testAppRoot_withEfestoAppRootAsComponentRoot() {
        LocalComponentIdA retrievedA = new ReflectiveAppRoot()
                .get(EfestoAppRoot.class)
                .get(EfestoComponentRootBar.class)
                .get(ComponentRootA.class)
                .get("fileName", "name");
        assertThat(retrievedA).isNotNull();
        LocalComponentIdB retrievedB = new ReflectiveAppRoot()
                .get(EfestoAppRoot.class)
                .get(EfestoComponentRootBar.class)
                .get(ComponentRootB.class)
                .get("fileName", "name", "secondName");
        assertThat(retrievedB).isNotNull();
        LocalComponentIdFoo retrievedFoo = new ReflectiveAppRoot()
                .get(EfestoAppRoot.class)
                .get(EfestoComponentRootBar.class)
                .get(ComponentFoo.class)
                .get("fileName", "name", "secondName");
        assertThat(retrievedFoo).isNotNull();
    }