code: package it.unibz.inf.ontop.spec.sqlparser;
  
  import com.google.inject.Injector;
  import it.unibz.inf.ontop.dbschema.impl.OfflineMetadataProviderBuilder;
  import it.unibz.inf.ontop.generation.normalization.impl.ConvertValuesToUnionNormalizer;
  import it.unibz.inf.ontop.injection.CoreSingletons;
  import it.unibz.inf.ontop.injection.IntermediateQueryFactory;
  import it.unibz.inf.ontop.injection.OntopSQLCoreConfiguration;
  import it.unibz.inf.ontop.model.atom.AtomFactory;
  import it.unibz.inf.ontop.model.term.TermFactory;
  import it.unibz.inf.ontop.model.term.functionsymbol.db.DBFunctionSymbolFactory;
  import it.unibz.inf.ontop.substitution.SubstitutionFactory;
  import org.apache.commons.rdf.api.RDF;
  
  public class SQLTestingTools {
  
      public static final IntermediateQueryFactory IQ_FACTORY;
  
      public static final TermFactory TERM_FACTORY;
      public static final AtomFactory ATOM_FACTORY;
      public static final DBFunctionSymbolFactory DB_FS_FACTORY;
      public static final SubstitutionFactory SUBSTITUTION_FACTORY;
      public static final RDF RDF_FACTORY;
      public static final CoreSingletons CORE_SINGLETONS;
  
      public static final ConvertValuesToUnionNormalizer CONVERT_VALUES_TO_UNION_NORMALIZER;
  
      static {
          OntopSQLCoreConfiguration defaultConfiguration = OntopSQLCoreConfiguration.defaultBuilder()
                  .jdbcUrl("jdbc:h2:mem:something")
                  .jdbcDriver("org.h2.Driver")
                  .enableTestMode()
                  .build();
  
          Injector injector = defaultConfiguration.getInjector();
          IQ_FACTORY = injector.getInstance(IntermediateQueryFactory.class);
          ATOM_FACTORY = injector.getInstance(AtomFactory.class);
          TERM_FACTORY = injector.getInstance(TermFactory.class);
          SUBSTITUTION_FACTORY = injector.getInstance(SubstitutionFactory.class);
          DB_FS_FACTORY = injector.getInstance(DBFunctionSymbolFactory.class);
  
          RDF_FACTORY = injector.getInstance(RDF.class);
  
          CORE_SINGLETONS = injector.getInstance(CoreSingletons.class);
          CONVERT_VALUES_TO_UNION_NORMALIZER = injector.getInstance(ConvertValuesToUnionNormalizer.class);
      }
  
      public static OfflineMetadataProviderBuilder createMetadataProviderBuilder() {
          return new OfflineMetadataProviderBuilder(CORE_SINGLETONS);
      }
  }
  