public static Set<CtType> computeClassProvider(CtType testClass) { List<CtType> types = Query.getElements(testClass.getParent(CtPackage.class), new TypeFilter(CtType.class)); types = types .stream() .filter(type -> type != null) .filter(type -> type.getPackage() != null) .filter( type -> type.getPackage() .getQualifiedName() .equals(testClass.getPackage().getQualifiedName())) .collect(Collectors.toList()); if (testClass.getParent(CtType.class) != null) { types.add(testClass.getParent(CtType.class)); } types.addAll( types.stream().flatMap(type -> getImport(type).stream()).collect(Collectors.toSet())); return types.stream().collect(Collectors.toSet()); }