module Katello
  module FixturesSupport
    FIXTURE_CLASSES = {
      :katello_activation_keys => Katello::ActivationKey,
      :katello_alternate_content_sources => Katello::AlternateContentSource,
      :katello_cdn_configurations => Katello::CdnConfiguration,
      :katello_contents => Katello::Content,
      :katello_content_views => Katello::ContentView,
      :katello_content_view_environments => Katello::ContentViewEnvironment,
      :katello_content_view_environment_content_facets => Katello::ContentViewEnvironmentContentFacet,
      :katello_content_view_filters => Katello::ContentViewFilter,
      :katello_content_view_erratum_filter_rules => Katello::ContentViewErratumFilterRule,
      :katello_content_view_package_filter_rules => Katello::ContentViewPackageFilterRule,
      :katello_content_view_package_group_filter_rules => Katello::ContentViewPackageGroupFilterRule,
      :katello_content_view_module_stream_filter_rules => Katello::ContentViewModuleStreamFilterRule,
      :katello_content_view_repositories => Katello::ContentViewRepository,
      :katello_content_view_histories => Katello::ContentViewHistory,
      :katello_content_view_versions => Katello::ContentViewVersion,
      :katello_content_view_version_export_histories => Katello::ContentViewVersionExportHistory,
      :katello_content_view_version_import_histories => Katello::ContentViewVersionImportHistory,
      :katello_debs => Katello::Deb,
      :katello_environments => Katello::KTEnvironment,
      :katello_files => Katello::FileUnit,
      :katello_gpg_keys => Katello::ContentCredential,
      :katello_installed_debs => Katello::InstalledDeb,
      :katello_package_groups => Katello::PackageGroup,
      :katello_repository_package_groups => Katello::RepositoryPackageGroup,
      :katello_pools => Katello::Pool,
      :katello_products => Katello::Product,
      :katello_pool_products => Katello::PoolProduct,
      :katello_product_contents => Katello::ProductContent,
      :katello_providers => Katello::Provider,
      :katello_root_repositories => Katello::RootRepository,
      :katello_repositories => Katello::Repository,
      :katello_sync_plans => Katello::SyncPlan,
      :katello_host_collections => Katello::HostCollection,
      :katello_subscriptions => Katello::Subscription,
      :katello_host_collection_hosts => Katello::HostCollectionHosts,
      :katello_task_statuses => Katello::TaskStatus,
      :katello_errata => Katello::Erratum,
      :katello_erratum_packages => Katello::ErratumPackage,
      :katello_erratum_cves => Katello::ErratumCve,
      :katello_repository_errata => Katello::RepositoryErratum,
      :katello_rpms => Katello::Rpm,
      :katello_srpms => Katello::Srpm,
      :katello_repository_debs => Katello::RepositoryDeb,
      :katello_repository_rpms => Katello::RepositoryRpm,
      :katello_repository_srpms => Katello::RepositorySrpm,
      :katello_content_facets => Katello::Host::ContentFacet,
      :katello_subscription_facets => Katello::Host::SubscriptionFacet,
      :katello_docker_manifests => Katello::DockerManifest,
      :katello_docker_tags => Katello::DockerTag,
      :katello_subscription_facet_pools => Katello::SubscriptionFacetPool,
      :katello_module_streams => Katello::ModuleStream,
      :katello_module_profiles => Katello::ModuleProfile,
      :katello_module_stream_artifacts => Katello::ModuleStreamArtifact,
      :katello_module_profile_rpms => Katello::ModuleProfileRpm,
      :katello_repository_module_streams => Katello::RepositoryModuleStream,
      :katello_content_facet_applicable_module_streams => Katello::ContentFacetApplicableModuleStream,
      :katello_available_module_streams => Katello::AvailableModuleStream,
      :katello_host_available_module_streams => Katello::HostAvailableModuleStream,
      :katello_ansible_collections => Katello::AnsibleCollection,
      :katello_repository_ansible_collections => Katello::RepositoryAnsibleCollection,
      :katello_smart_proxies => SmartProxy,
      :katello_smart_proxy_features => SmartProxyFeature,
      :katello_features => Feature,
      :katello_generic_content_units => Katello::GenericContentUnit,
      :katello_flatpak_remotes => Katello::FlatpakRemote,
      :katello_flatpak_remote_repositories => Katello::FlatpakRemoteRepository,
      :katello_flatpak_remote_repository_manifests => Katello::FlatpakRemoteRepositoryManifest,
    }.freeze

    # rubocop:disable Naming/AccessorMethodName
    def self.set_fixture_classes(test_class)
      FIXTURE_CLASSES.each { |k, v| test_class.set_fixture_class(k => v) }
    end
  end
end
