image_management_api/tests/db/test_repository_factory.py
2025-05-24 12:59:18 +02:00

52 lines
2.3 KiB
Python

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)