import pytest from src.db.repositories.repository_factory import RepositoryFactory, DatabaseType from src.db.repositories.firestore_team_repository import FirestoreTeamRepository from src.db.repositories.firestore_user_repository import FirestoreUserRepository from src.db.repositories.firestore_api_key_repository import FirestoreApiKeyRepository from src.db.repositories.firestore_image_repository import FirestoreImageRepository class TestRepositoryFactory: """Test cases for RepositoryFactory""" @pytest.fixture def factory(self): """Create a RepositoryFactory instance for testing""" return RepositoryFactory() def test_init(self, factory): """Test factory initialization""" assert DatabaseType.FIRESTORE in factory.team_repositories assert DatabaseType.FIRESTORE in factory.user_repositories assert DatabaseType.FIRESTORE in factory.api_key_repositories assert DatabaseType.FIRESTORE in factory.image_repositories def test_get_team_repository(self, factory): """Test getting team repository""" repository = factory.get_team_repository() assert isinstance(repository, FirestoreTeamRepository) def test_get_user_repository(self, factory): """Test getting user repository""" repository = factory.get_user_repository() assert isinstance(repository, FirestoreUserRepository) def test_get_api_key_repository(self, factory): """Test getting API key repository""" repository = factory.get_api_key_repository() assert isinstance(repository, FirestoreApiKeyRepository) def test_get_image_repository(self, factory): """Test getting image repository""" repository = factory.get_image_repository() assert isinstance(repository, FirestoreImageRepository) def test_database_type_enum(self): """Test DatabaseType enum""" assert DatabaseType.FIRESTORE == "firestore" assert len(DatabaseType) == 1 # Only Firestore should be available def test_singleton_factory(self): """Test that the factory is properly imported as singleton""" from src.db.repositories.repository_factory import repository_factory assert isinstance(repository_factory, RepositoryFactory)