InstanceHelpers { public static Instance findRootInstance( Instance instance ) { Instance rootInstance = instance; while( rootInstance.getParent() != null ) rootInstance = rootInstance.getParent(); return rootInstance; } private  InstanceHelpers(); static String computeInstancePath( Instance inst ); static boolean haveSamePath( Instance i1, Instance i2 ); static String findInstanceName( String instancePath ); static List<Instance> buildHierarchicalList( Instance inst ); static void insertChild( Instance parent, Instance child ); static Map<String,String> findAllExportedVariables( Instance instance ); static Instance findInstanceByPath( AbstractApplication application, String instancePath ); static Instance findInstanceByPath( Instance rootInstance, String instancePath ); static List<Instance> findInstancesByComponentName( AbstractApplication application, String componentName ); static Instance findRootInstance( Instance instance ); static Instance findScopedInstance( Instance instance ); static List<Instance> findAllScopedInstances( AbstractApplication app ); static List<Instance> getAllInstances( AbstractApplication application ); static boolean tryToInsertChildInstance( AbstractApplication application, Instance parentInstance, Instance childInstance ); static boolean hasChildWithThisName( AbstractApplication application, Instance parentInstance, String nameToSearch ); static File findInstanceDirectoryOnAgent( Instance instance ); static int countInstances( String instancePath ); static Instance replicateInstance( Instance instance ); static boolean isTarget( Instance instance ); static void removeOffScopeInstances( Instance scopedInstance ); static String findRootInstancePath( String scopedInstancePath ); static void fixOverriddenExports( Instance instance );  }
@Test public void testFindRootInstance() { Instance inst = new Instance( "inst" ); Assert.assertEquals( inst, InstanceHelpers.findRootInstance( inst )); Instance childInstance = new Instance( "child-instance" ); InstanceHelpers.insertChild( inst, childInstance ); Assert.assertEquals( inst, InstanceHelpers.findRootInstance( inst )); Assert.assertEquals( inst, InstanceHelpers.findRootInstance( childInstance )); Instance lastChild = childInstance; for( int i=0; i<8; i++ ) { Instance tempInstance = new Instance( "child-" + i ); InstanceHelpers.insertChild( lastChild, tempInstance ); lastChild = tempInstance; } Assert.assertEquals( inst, InstanceHelpers.findRootInstance( lastChild )); }